資訊清單 - 沙箱

定義要在沙箱專屬來源中提供的擴充功能頁面集合。 擴充功能的沙箱網頁使用的內容安全政策是由 "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 可能的沙箱權杖的規格)。

請注意,您只需要列出預期會在視窗或頁框中載入的網頁。資源 沙箱頁面 (例如樣式表或 JavaScript 來源檔案) 不需要顯示在 pages 清單,因為它們會使用嵌入這些影格的沙箱機制。

在 Chrome 擴充功能中使用 eval()」進一步瞭解 沙箱工作流程,啟用後,就無法在 擴充功能的預設內容安全政策