我有一个流行的Chrome扩展,在使用CSP的网站上失败。
根据用户配置的一些设置,该扩展丰富了我的用户访问的站点上的内容。
在具有CSP策略的站点上,执行JS时会出现以下错误:This document requires 'TrustedScriptURL' assignment
我如何在这些站点上运行我的扩展--我可以使用这个站点的CSP f.ex吗?或者这会是一种糟糕的做法吗?
发布于 2022-11-24 11:16:25
总比没有好。在MV3中,Chrome提供了一个declarativeNetRequest API,允许您更改请求头(响应和请求)。更多- declarativeNetRequest。例如,此规则完全禁用传入请求的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,而是将其设置为可以加载/执行内容。
发布于 2022-05-10 13:19:29
也许你可以试试这个
<meta
http-equiv="Content-Security-Policy"
content=" default-src 'self' http://* https://*;
connect-src 'self' http://* https://*;
img-src 'self' http://* https://*;"
/>
https://stackoverflow.com/questions/72186787
复制相似问题