CSP
内容安全策略 (Content Security Policy):
内容安全策略是一种计算机安全标准,旨在防御跨站脚本、点击劫持等代码注入攻击,阻止恶意内容在受信网页环境中执行。
Manifest V3 对于内容安全策略有一些默认的设置,如禁止外部代码的执行,这主要是为了增强安全性。如果需要调整默认策略以允许执行更多类型的资源,可以通过修改 manifest.json 中的 content_security_policy 字段实现。
常见错误:
'content_security_policy.extension_pages': Insecure CSP value "'blob:'" in directive 'script-src'.
Could not load manifest.
解决
此文解决的是 extension_pages 页面,不是context 注入
方法1
声明引用文件:【web_accessible_resources -> resources】
"web_accessible_resources": [
{
"resources": [
"assets/*",
],
"matches": [
"<all_urls>"
]
},
{
"matches": [
"<all_urls>"
],
"resources": [
"content.e2b1d2ad.css"
]
}
],
如果是在context: 【content_scripts -> js】
"content_scripts": [
{
"matches": [
"<all_urls>"
],
"js": [
"content.883ade9e.js"
],
"css": []
}
],
方法2
如果运行脚本中创建script脚本,需要修改 content_security_policy。如下:
【pages: 页面路径 】
"content_security_policy": {
"sandbox": "sandbox allow-scripts allow-modals allow-popups; script-src 'self' 'unsafe-inline' 'unsafe-eval' blob:; object-src 'self';worker-src 'self' blob: ;",
"extension_pages": "script-src 'self' 'wasm-unsafe-eval'; object-src 'self'; media-src 'self' data: blob: *;"
},
"sandbox": {
"pages": [
"editor.html",
"/tabs/download.html"
]
}