[英]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 指令只能具有以下值:
沙盒的 CSP 修改没有这样的新限制。
通过本指南,扩展页面似乎不允许使用 sha-256 值。 但这些通常是内联脚本。 您可以将脚本保存为 js 文件,然后使用<script/>
标签从那里加载它; 这不需要 CSP 策略。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.