清单文件——沙盒

要在受沙箱保护的唯一来源中加载的页面路径(相对于扩展程序包根目录)列表,还可以指定可选的内容安全策略来一起使用。在沙箱中意味着如下两点:

  1. 受沙箱保护的页面不能访问扩展程序或应用 API,也不能直接访问沙箱外的页面(但是可以通过 postMessage() 进行通信)。
  2. 受沙箱保护的页面不受应用或扩展程序其余部分使用的内容安全策略(CSP)所限制。这就意味着,它可以使用内嵌脚本与 eval

    例如,如下代码指定两个扩展程序网页在沙盒中加载,并使用自定义的 CSP:

    {
      ...
      "sandbox": {
        "pages": [
          "page1.html",
          "directory/page2.html"
        ]
        // 内容安全策略是可选的。
        "content_security_policy":
            "sandbox allow-scripts; script-src https://www.google.com"
      ],
      ...
    }
    

    如果没有指定的话,默认的 content_security_policy 值为 sandbox allow-scripts allow-forms。您可以指定您自己的 CSP 值来更进一步限制沙箱,但是它必须包含 sandbox 指示符,并且不能包含 allow-same-origin 记号(有关可能的沙箱记号,请参见相应的 HTML 5 规范)。

注意,您只需要列出您期望在窗口或框架中加载的页面。受沙箱保护的页面所使用的资源(例如样式表或 JavaScript 源文件)不需要出现在 sandbox 列表中,它们会使用内嵌它们的页面所使用的沙箱。

“安全使用eval”文档更详细地介绍了如何实现沙箱保护的工作流程,使您得以使用扩展程序默认内容安全策略下无法正常执行的库。

只有使用 manifest_version 2 或更高版本时才能指定受沙箱保护的页面。