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

Chrome扩展迁移Manifest V3时含sha256的CSP配置报错如何解决?

Manifest V3 CSP 报错解决方案

问题根因

Manifest V3 对内容安全策略(CSP)的配置规则做了两项和V2不兼容的强制调整:

  1. 配置格式从单字符串改为分作用域的对象结构,核心作用域包含extension_pages(覆盖扩展后台页面、弹出页、选项页等核心页面)、sandbox(覆盖沙箱页面)
  2. extension_pages 作用域的script-src禁止使用哈希值、'unsafe-inline'、'unsafe-eval'规则,即使哈希属于安全实践也不被允许,这就是触发报错的直接原因。

解决步骤

  • 第一步:将内联JS代码全部抽离为独立本地JS文件,通过<script src="对应文件路径"></script>引入,extension_pages默认允许'self'来源的本地脚本,不需要额外添加哈希认证。
  • 第二步:将CSP配置调整为Manifest V3要求的对象格式,示例如下:
{
  "manifest_version": 3,
  // 其他扩展配置项省略
  "content_security_policy": {
    "extension_pages": "script-src 'self'; object-src 'self'",
    // 如果你确实需要运行带哈希认证的脚本,必须放到沙箱环境中
    "sandbox": "sandbox allow-scripts; script-src 'self' 'sha256-你之前使用的哈希值'; object-src 'none'"
  },
  // 用到沙箱时需要额外声明沙箱页面路径
  "sandbox": {
    "pages": ["你的沙箱页面路径.html"]
  }
}
  • 额外说明:如果你的脚本不需要特殊权限,仅做逻辑运算,才适合放到沙箱环境运行;需要调用扩展API的脚本必须放在extension_pages覆盖的页面中,且完全抽离为本地文件,不能使用哈希。

内容的提问来源于stack exchange,提问作者El Pollo Loco

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 12:15:04