如何解决在不违反 CSP 和拦截标头的情况下包含第三方库作为内容脚本
我目前正在编写一个支持 Manifest-v2 和 v3 的浏览器扩展,为了方便,它需要 CashJS 库(JQuery 的轻量级版本)。我希望我的内容脚本 content/index.js
能够使用这个库 content/cash.min.js
,但我收到 CSP 违规声明:
Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self'". Either the 'unsafe-inline' keyword,a hash ('sha256-wThdlNeRf1Fp3UGuX3Ch9caqVJ8S7Wn41fdlaVxsRDE='),or a nonce ('nonce-...') is required to enable inline execution.
这是我的 manifest.json(适用于 v3):
...
"content_scripts": [{
...
"js": [
"content/cash.min.js","content/index.js"
]
}],...
我尝试以各种方式使用 content_security_policy
(散列和启用 unsafe-inline
),但 Chrome 拒绝:
"content_security_policy": "script-src 'self' 'sha256-wThdlNeRf1Fp3UGuX3Ch9caqVJ8S7Wn41fdlaVxsRDE='; object-src 'self';"
尝试加载扩展时会出现错误 Invalid value for 'content_security_policy'.
。我已阅读 this page from Mozilla 以及其他讨论此问题的帖子,但尚未找到适合我需求的解决方案。
This article from Chrome's documentation 提到使用他们的 sandBoxing
功能,但它似乎只适用于网页,而不适用于脚本本身。
任何帮助将不胜感激!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。