在我的 Content-Security-Policy 标头中添加 require-trusted-types-for 'script';
之后,它 从 Chrome 83 Beta 引入 以帮助锁定 DOM XSS 注入接收器,
当我打开我的网站时,它变成了一个空白页面。我的控制台中出现了很多这三种错误。 (Chrome 版本 83.0.4103.61)
此文档需要“TrustedScript”分配。
此文档需要“TrustedScriptURL”分配。
TypeError:无法在“HTMLScriptElement”上设置“src”属性:此文档需要“TrustedScriptURL”分配。
我已阅读文章 Prevent DOM-based cross-site scripting vulnerabilities with Trusted Types 。但是,该文章仅说明了如何处理 TrustedHTML ,而没有说明如何处理 TrustedScript 或 TrustedScriptURL 。
任何指南都会有所帮助。谢谢!
原文由 Hongbo Miao 发布,翻译遵循 CC BY-SA 4.0 许可协议
我们一直遇到同样的问题。
修复方法如下:
安装 DOMPurify 库。
npm install --save DOMPurify
创建文件
trusted-security-policies.js
。在您的捆绑器(例如 webpack)的入口点, 首先 导入此文件(在 任何 可能违反内容安全策略的代码之前):
这是做什么的: 每当将字符串指定 为解析为 HTML 、URL 或脚本时,浏览器 会自动 将此字符串传递给定义的处理函数。
对于 HTML, DOMPurify 库正在从潜在的 XSS 代码中清除 HTML。
对于
scriptURL
和script
,字符串只是通过。 请注意,这实际上禁用了这两个部分的安全性,并且只应在您尚未确定如何使这些字符串安全的情况下使用。一旦你有了它,相应地替换处理函数。编辑,2021 年 12 月: 我能够 为 DOMPurify 做出贡献 , 因此如果您需要在 HTML 字符串中使用 自定义元素 以及 自定义属性(在 2.3.4 版 之前是在消毒过程中简单地删除):