警告:从版本 57 开始,Chrome 将不再允许在沙盒化网页中使用外部 Web 内容(包括嵌入的框架和脚本)。请改用网页视图。
定义要通过沙盒化唯一源提供的一组应用或扩展程序页面,以及可选的要与这些页面搭配使用的内容安全政策。沙盒模式有两个含义:
- 沙盒化网页无法访问扩展程序/应用 API,也无法直接访问
未经过沙盒屏蔽的网页(可以通过
postMessage()
与这些网页进行通信)。 沙盒化网页不受应用或扩展程序其余部分使用的内容安全政策 (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
标记(请参阅 HTML5 规范。此外,您指定的 CSP 可能不允许加载 访问沙盒页面
请注意,您只需列出预期在窗口或框架中加载的网页。资源
不需要在
sandboxed_page
列表中,它们将使用嵌入它们的页面的沙盒。
“在 Chrome 扩展程序中使用 eval。安全地使用扩展程序中的库。”,详细介绍了如何实现沙盒化工作流,以便使用在扩展程序的默认内容安全政策下执行时会出现问题的库。
仅当使用 manifest_version
2 或更高版本时,才能指定沙盒化页面。