Chrome 扩展和 CSP

问题描述 投票:0回答:2

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

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

在具有 CSP 策略的站点上,执行 JS 时出现以下错误:

This document requires 'TrustedScriptURL' assignment

如何在这些网站上运行我的扩展 - 我可以使用该网站的 CSP f.ex,还是不好的做法?

javascript google-chrome-extension content-security-policy
2个回答
0
投票

总比没有好。在 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,而是对其进行设置,以便可以加载/执行您的内容。


-1
投票

也许你可以试试这个

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

© www.soinside.com 2019 - 2024. All rights reserved.