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

Nie*_*man 7 javascript xss reactjs vue.js angular

我试图弄清楚如何保护,

  • 角度的
  • Vue
  • 反应

抵抗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攻击的方法,还是我需要寻找第三方解决方案?

当我用Google搜索该主题时,我会看到很多博客文章站点和文章,这些文章和文章引用了例如该项目来净化HTML的项目:

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

dag*_*lti 6

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

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

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


小智 5

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

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

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

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