定义要在沙盒化的唯一源中提供的一组扩展程序页面。通过
扩展程序的沙盒化页面使用的内容安全政策是在
"content_security_policy"
键。
处于沙盒中有两个影响:
- 沙盒化网页无法访问扩展程序 API,也无法直接访问
未经过沙盒屏蔽的网页(可以使用
postMessage()
与这些网页进行通信)。 - 沙盒化页面不受其余组件使用的内容安全政策 (CSP) 的约束
扩展名(它有自己单独的 CSP 值)。也就是说,它可以
使用内嵌脚本和
eval()
。
例如,以下代码展示了如何指定在具有 自定义 CSP:
{
...
"content_security_policy": {
"sandbox": "sandbox allow-scripts; script-src 'self' https://example.com"
},
"sandbox": {
"pages": [
"page1.html",
"directory/page2.html"
]
},
...
}
如果未指定,则默认的 "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
规范。
请注意,您只需列出预期会在窗口或框架中加载的网页即可。资源
而不需要出现在
pages
列表,因为它们将使用嵌入它们的框架的沙盒。
“在 Chrome 扩展程序中使用 eval()”一文详细介绍了如何实现 有了这个沙盒工作流,您可以使用在 SDK 环境下执行时发生错误的库, 扩展程序的默认内容安全政策。