Manifest - Sandbox(沙盒)
警告
重要提示:Chrome 将在所有平台上取消对 Chrome 应用程序的支持。 Chrome 浏览器和 Chrome 网上应用店将继续支持扩展。阅读公告并了解有关迁移应用程序的更多信息。
警告:从版本 57 开始,Chrome 将不再允许在沙盒页面中使用外部 Web 内容(包括嵌入的框架和脚本)。请改用网络视图。
定义要在沙盒唯一来源中提供的应用程序或扩展程序页面的集合,以及与它们一起使用的内容安全策略(可选)。处于沙箱中有两个含义:
沙盒页面将无法访问扩展或应用程序 API,或直接访问非沙盒页面(它可能通过 postMessage() 与它们通信)。
沙盒页面不受应用程序或扩展程序其余部分使用的内容安全策略 (Content Security Policy (CSP)) 的约束(它有自己单独的 CSP 值)。这意味着,例如,它可以使用内联脚本和 eval。例如,以下是如何指定在具有自定义 CSP 的沙箱中提供两个扩展页面的方法:
{ ... "sandbox": { "pages": [ "page1.html", "directory/page2.html" ] // content_security_policy is optional. "content_security_policy": "sandbox allow-scripts; script-src 'self'" ], ... }
如果未指定,则默认 content_security_policy 值为
sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';
. 您可以指定您的 CSP 值以进一步限制沙箱,但它必须具有sandbox
指令并且可能没有allow-same-origin
标记(请参阅 the HTML5 specification以了解可能的沙箱标记)。此外,您指定的 CSP 可能不允许在沙盒页面内加载外部 Web 内容。
请注意,您只需要列出您希望在窗口或框架中加载的页面。沙盒页面使用的资源(例如样式表或 JavaScript 源文件)不需要出现在 sandboxed_page
列表中,它们将使用嵌入它们的页面的沙盒。
“"Using eval in Chrome Extensions. Safely."”更详细地介绍了实施沙盒工作流,该工作流允许使用在扩展的默认内容安全策略下执行时会出现问题的库。
By.一粒技术服务