Chrome Extensions and CSP



我有一个流行的Chrome扩展,在使用CSP的网站上失败。

扩展丰富了我的用户访问的网站上的内容,根据他们已经配置的一些设置。

在有CSP策略的站点上,我在执行JS时得到以下错误:This document requires 'TrustedScriptURL' assignment

我如何在这些网站上运行我的扩展-我可以使用该网站的CSP f.ex。或者这是不好的练习吗?

聊胜于无。在MV3中,Chrome提供了一个declarativeNetRequest API,允许您更改请求标头(响应和请求)。More - declarativetrequest。例如,该规则对传入请求完全禁用CSP(删除CSP标头):

//manifest.json
...
"permissions": [
"declarativeNetRequest", 
"declarativeNetRequestWithHostAccess", 
"declarativeNetRequestFeedback",
"scripting",
"activeTab"
],
"declarative_net_request": {
"rule_resources": [
{
"id": "ruleset_1",
"enabled": true,
"path": "rules.json"
}
]
}
...
//rules.json
[
{
"id": 1,
"priority": 1,
"action": {
"type": "modifyHeaders",
"responseHeaders": [
{"header": "Content-Security-Policy", "operation": "remove"}
]
},
"condition": {
"urlFilter": "|http*",
"resourceTypes": ["script", "main_frame", "sub_frame"]
}
}
]
小心!您的目标不是禁用CSP,而是设置它,以便您的内容可以加载/执行。

也许你可以试试这个

<meta
http-equiv="Content-Security-Policy"
content=" default-src 'self' http://* https://*;
connect-src 'self' http://* https://*; 
img-src 'self' http://* https://*;"
/>

最新更新