繁体   English   中英

将我的 Chrome 扩展程序迁移到 Manifest v3 时出错

[英]Error with migrating my Chrome Extension to Manifest v3

我想将我的 Chrome 扩展程序迁移到清单 V3。
content_security 策略在清单 V2 上如下所示:

{...
"content_security_policy": "script-src 'self' 'sha256-...' ; object-src 'self'"
}

请注意,我使用的是最具体的属性 sha-256 值。
此外,我使用此工具进行了“半官方”转换。

当我将清单转换为 V3 然后更新扩展时,我收到以下错误 我不明白为什么它被认为是不安全的 CSP 值,而它在 Manifest V2 上被接受并且被认为使用代码的指定 hash 值是安全的。
我怎样才能克服它?

在清单 MV3 中,CSP 是 object,但在错误中它是字符串,因此需要重新格式化。


迁移指南中的示例和说明:

清单 V2

"content_security_policy": "..."

清单 V3

"content_security_policy": {
  "extension_pages": "...",
  "sandbox": "..."
}
  • extension_pages :此策略涵盖您的扩展中的页面,包括 html 文件和服务工作者。

    这些页面类型由chrome-extension://协议提供。 例如,您的扩展程序中的一个页面是chrome-extension://<extension-id>/foo.html

  • sandbox :此策略涵盖您的扩展程序使用的任何沙盒扩展程序页面

重要的!

此外,MV3 不允许对 MV2 中允许的 extension_pages 进行某些 CSP 修改。 script-src、object-src 和 worker-src 指令只能具有以下值:

  • 自己
  • 没有任何
  • 任何 localhost 源(http://localhost、 http://127.0.0.1或这些域上的任何端口)

沙盒的 CSP 修改没有这样的新限制。


通过本指南,扩展页面似乎不允许使用 sha-256 值。 但这些通常是内联脚本。 您可以将脚本保存为 js 文件,然后使用<script/>标签从那里加载它; 这不需要 CSP 策略。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM