Chrome javascript自执行限制

t5fffqht  于 2022-12-28  发布在  Go
关注(0)|答案(1)|浏览(116)

我有内部自我执行js的html文件(是的,我需要内部,而不是外部js文件)。
并捕获chrome错误:
拒绝执行内联脚本,因为它违反了以下内容安全策略指令:"default-src 'self'"。启用内联执行需要" unsafe-inline "关键字、哈希(" sha256-ZdElrYr3TtaKtaoIZnHOTnExAQZ24F52ZnNNnSzy16M =')或随机数("nonce-...")。另请注意,未显式设置"script-src",因此"default-src"用作回退。
我将meta标记添加到head标记并再次捕获异常

<meta http-equiv="Content-Security-Policy: script-src 'sha256-ZdElrYr3TtaKtaoIZnHOTnExAQZ24F52ZnNNnSzy16M='">

问题是什么?

bxgwgixi

bxgwgixi1#

很可能服务器发送了一个Content-Security-Policy头文件,其中包含了禁止内联脚本的策略,在这种情况下,添加 * 另一个 * 允许内联脚本的策略也无济于事。
来自MDN:
CSP机制允许为资源指定多个策略,包括通过Content-Security-Policy报头、Content-Security-Policy-Report-Only报头和元素。
您可以多次使用Content-Security-Policy标头,如下例所示。请特别注意此处的connect-src指令。即使第二个策略允许连接,第一个策略也包含connect-src“none '。添加其他策略只能进一步限制受保护资源的功能,这意味着将不允许连接,作为最严格的策略,强制执行connect-src“none”。
因此,您需要更改或删除头文件中阻止内联脚本的策略。

相关问题