You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chrome扩展Manifest V3下CSP配置报错问题求助

Chrome扩展Manifest V3 CSP配置问题解决方案

针对你遇到的三个CSP配置问题,以下是具体解决方法和原因说明:

问题1:配置script-src 'self' 'wasm-unsafe-eval'时提示拒绝内联脚本

原因

Manifest V3对CSP的限制极为严格,默认禁止执行任何内联脚本(包括<script>...</script>内的代码、onclick="xxx"这类事件属性),必须明确指定允许的规则。

解决方法

优先移除所有内联脚本,这是MV3推荐的规范做法:

  • 将<script>标签内的代码迁移到独立的.js文件,通过<script src="./path/to/script.js"></script>引入
  • 把onclick这类事件属性替换为JS文件中的addEventListener绑定,例如:
    document.getElementById('target-btn').addEventListener('click', yourFunction);
    

问题2:使用哈希值配置CSP时提示不安全无法加载

原因

哈希值生成错误,可能是以下情况:

  • 未使用Chrome支持的哈希算法(仅允许SHA-256、SHA-384、SHA-512)
  • 哈希计算时没有完全匹配内联脚本的原始内容(包括空格、换行符等细节)
  • 配置时未给哈希值添加单引号包裹

解决方法

如果必须保留内联脚本(不推荐),按以下步骤生成正确哈希:

  1. 复制内联脚本的完整内容(包括所有空格和换行)
  2. 使用SHA-256/384/512计算哈希并转成Base64编码(可通过Chrome控制台或在线工具生成)
  3. 在CSP中添加格式正确的哈希规则,示例:
    "content_security_policy": {
      "extension_pages": "script-src 'self' 'sha256-abcdef123456...' 'wasm-unsafe-eval'; object-src 'none';"
    }
    

问题3:配置script-src 'self' 'unsafe-inline'时提示不安全无法加载

原因

Manifest V3明确禁止在script-src中使用'unsafe-inline',这是MV3为提升扩展安全性强制实施的规则,没有例外。

推荐的标准CSP配置(无内联脚本场景)

"content_security_policy": {
  "extension_pages": "script-src 'self' 'wasm-unsafe-eval'; object-src 'none'; style-src 'self' 'unsafe-inline';",
  "sandbox": "sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';"
}

注:style-src中的'unsafe-inline'是允许的,MV3对内联样式的限制较宽松。

内容的提问来源于stack exchange,提问作者user24455281

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 18:52:17