默认情况下,Vue 是否为 XSS 提供安全性或防止 XSS?

新手上路,请多包涵

我想弄清楚如何保护,

  • 有角的
  • 视图
  • 反应

对抗 XSS 攻击。当我访问 Angular 官方文档时,

https://angular.io/guide/security

, 它说:

为了系统地阻止 XSS 错误,Angular 默认将所有值视为不受信任。当一个值通过属性、特性、样式、类绑定或插值从模板插入到 DOM 中时,Angular 会清理并转义不受信任的值。

并且:

Angular 会清理 HTML、样式和 URL 的不受信任的值;清理资源 URL 是不可能的,因为它们包含任意代码。在开发模式下,Angular 在清理期间必须更改值时会打印控制台警告。

和:

Angular 将值识别为不安全并自动对其进行清理,这会删除标记但保留元素等安全内容。

当我去 React 官方文档时,

https://reactjs.org/docs/introducing-jsx.html#jsx-prevents-injection-attacks

,它说了以下内容:

在 JSX 中嵌入用户输入是安全的:

和:

默认情况下,React DOM 在渲染它们之前转义嵌入在 JSX 中的任何值。因此,它确保您永远无法注入任何未明确写入您的应用程序的内容。一切都在呈现之前转换为字符串。这有助于防止 XSS(跨站点脚本)攻击。

但是对于 Vue,我在他们的文档中找不到任何关于 XSS 保护的内容,或者他们可以默认提供的任何内容。

我的问题: 默认情况下,Vue 是否提供任何方式来防止 XSS 攻击,或者我是否需要寻找第 3 方解决方案?

当我用谷歌搜索这个主题时,我得到了很多博客文章网站和文章,例如,这个项目来清理我的 HTML:

https://github.com/punkave/sanitize-html

原文由 Niek Jonkman 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 683
2 个回答

vue 中没有内置的消毒剂。根据 Evan You(Vue 的创建者)对问题的 评论

内置消毒剂会为罕见的用例增加额外的包重量(当 v-html 的大多数用例用于受信任的内容时);通过设置 Vue.prototype.\(sanitize = sanitizeHTML 添加 sanitize-html 也很简单,然后执行 v-html="\)sanitize(html)“。

检查这篇文章: https ://github.com/vuejs/vue/issues/6333

原文由 dagalti 发布,翻译遵循 CC BY-SA 4.0 许可协议

一种帮助防止 XSS 的方法是在您的 html 头中添加 内容安全策略。它通过限制页面可以加载的资源(脚本、图像)以及限制页面的框架来工作。

例如,以下指令仅允许从与页面本身和“apis.google.com”相同的来源加载脚本。

<meta http-equiv="Content-Security-Policy" content="script-src 'self' https://apis.google.com">

还有其他 CSP 设置可用于帮助减轻 XSS 攻击,例如 nonce 和哈希。有关更多信息,请访问: https ://developer.mozilla.org/en-US/docs/Web/HTTP/CSP

原文由 cwoods 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题