3 回答
TA贡献1794条经验 获得超8个赞
我们一直遇到同样的问题。
以下是解决方法:
安装多姆净化库。
npm install --save DOMPurify创建一个文件 。
trusted-security-policies.js在捆绑器的入口点(例如 webpack)中,首先导入此文件(在任何可能违反内容安全策略的代码之前):
import './path/to/trusted-security-policies';
import DOMPurify from 'dompurify';
if (window.trustedTypes && window.trustedTypes.createPolicy) { // Feature testing
window.trustedTypes.createPolicy('default', {
createHTML: (string) => DOMPurify.sanitize(string, {RETURN_TRUSTED_TYPE: true}),
createScriptURL: string => string, // warning: this is unsafe!
createScript: string => string, // warning: this is unsafe!
});
}
这样做是做什么的:每当将字符串指定为 HTML、URL 或脚本时,浏览器都会通过定义的处理程序函数自动传递此字符串。
对于 HTML,HTML 正在由 DOM 纯化库从潜在的 XSS 代码中清除。
对于 和 ,字符串只是传递。请注意,这实际上禁用了这两个部分的安全性,并且只应在您尚未确定如何使这些字符串安全的情况下使用。一旦有了,就相应地替换处理程序函数。scriptURLscript
TA贡献1887条经验 获得超5个赞
检查一下。帮帮你。
潜在修复的参考:
有关可信类型和 Chrome 浏览器实施的背景:
https://github.com/w3c/webappsec-trusted-types/blob/master/explainer.md
https://gadgets.kotowicz.net/poc/Trusted_Types_TPAC_2018.pdf
短期修复选项:
添加仅报表 CSP 标头。[不是很好,如果你正在运行一个敏感的prod应用程序,你必须知道各种风险]
长期修复选项:
您可以进行调查,将外部第三方的东西带到您的基地,并避免整体的痛苦。
我不是专家,只是试图从中学习,我会说修复几乎是从案例到案例,而不是银弹类型。
TA贡献1828条经验 获得超6个赞
在我的情况下,是Chrome的“更改时区”插件导致问题出现在网站上。已卸载插件,一切都已解决。因此,最好检查问题是否由最近安装的浏览器插件引起,并检查其他浏览器。
添加回答
举报
