我有内部自我执行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='">
问题是什么?
1条答案
按热度按时间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”。
因此,您需要更改或删除头文件中阻止内联脚本的策略。