我在chrome扩展程序中使用了外部JavaScript库。我有内联执行,因此出现以下错误
(我在控制台上得到的错误)
拒绝执行JavaScript URL,因为它违反了以下内容安全策略指令:“ script-src'self'chrome-extension://”。要启用内联执行,需要使用'unsafe-inline'关键字,哈希('sha256 -...')或随机数('nonce -...')。
该错误消息清楚地表明存在解决方法。
Chrome内容安全政策说不可行。许多相关问题都引用了此链接。
博客该博客作者说有可能,但可能仅适用于较旧的chrome扩展名。
有什么解决办法吗?
PS:不要/无法更改我正在使用的整个库。
编辑:如何使用哈希或随机数来启用内联执行。
不,这不可能放松这项政策。 unsafe-inline
自清单版本2以来,Chrome扩展程序特别忽略了该扩展程序。
文档(重点是我的):
没有任何机制可以放宽执行内联JavaScript的限制。特别是,设置包含“ unsafe-inline”的脚本策略将无效。
错误消息中提到了几种可能的方法,但是文档很清楚,没有CSP允许内联脚本编写,而忽略unsafe-inline
只是其中的一种措施。
从Chrome 46开始,可以通过在策略中指定源代码的base64编码哈希来将内联脚本列入白名单。该哈希必须以使用的哈希算法(sha256,sha384或sha512)作为前缀。有关示例,请参见元素的哈希用法。
请参阅此答案,以更深入地了解白名单。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句