清单 - 沙盒

定义要在沙盒化的唯一源中提供的一组扩展程序页面。通过 扩展程序的沙盒化页面使用的内容安全政策是在 "content_security_policy" 键。

处于沙盒中有两个影响:

  1. 沙盒化网页无法访问扩展程序 API,也无法直接访问 未经过沙盒屏蔽的网页(可以使用 postMessage() 与这些网页进行通信)。
  2. 沙盒化页面不受其余组件使用的内容安全政策 (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 环境下执行时发生错误的库, 扩展程序的默认内容安全政策