我在Chrome扩展程序中使用了库list.js,并使用内联脚本在网页中插入分页,其中包含<a>
元素,如下所示:
<a href="javascript:function Z(){Z=\"\"}Z()"></a>
因此,为了使这项工作在扩展中,我想我需要将其列入内容安全策略(CSP)。
为了做到这一点,我试图放松内联脚本的CSP,如Chrome docs here中所述,但我无法做到并仍然出现控制台错误:
拒绝执行JavaScript网址,因为它违反了以下规定 内容安全政策指令:&#34; script-src&#39; self&#39; &#39; {sha256- HASH}&#39;&#34 ;. “不安全 - 内联”和“不安全”。关键字,哈希 (&#39; sha256 -...&#39;)或nonce(&#39; nonce -...&#39;)需要启用内联 执行。
我按照说明here生成sha256哈希并尝试:
$echo -n "function Z(){Z=\"\"}Z()" | openssl dgst -sha256 -binary | openssl enc -base64
$echo -n "function Z(){Z=""}Z()" | openssl dgst -sha256 -binary | openssl enc -base64
获得哈希后,我将其包含在manifest.json
中,如下所示:
...
"content_security_policy": "script-src 'self' 'sha256-{HASH}'; object-src 'self'",
...
我做错了什么?