資訊清單 - 內容安全政策

這是選用的資訊清單金鑰,內含網路平台內容安全性政策,當中針對擴充功能可用的指令碼、樣式和其他資源指定限制。在這個資訊清單金鑰中,您可以為擴充功能頁面和沙箱擴充功能頁面分別定義選用政策。

「擴充功能網頁」政策適用於擴充功能中的網頁和工作站結構定義。這包括擴充功能彈出式視窗、背景 worker,以及含有擴充功能開啟的 HTML 網頁或 iframe 的分頁。沙箱政策會套用至資訊清單中指定為沙箱頁面的所有網頁。

預設政策

如果使用者未在資訊清單中定義內容安全政策,擴充功能頁面和沙箱擴充功能頁面都會使用預設屬性。

這些預設值等同於在資訊清單中指定下列政策:

{
  // ...
  "content_security_policy": {
    "extension_pages": "script-src 'self'; object-src 'self';",
    "sandbox": "sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';"
  }
  // ...
}

在這種情況下,擴充功能只會從本身的封裝資源載入本機指令碼和物件。WebAssembly 將停用,擴充功能將無法執行內嵌 JavaScript,也無法將字串評估為可執行的程式碼。如果加入沙箱網頁,權限將更放寬,可從擴充功能評估指令碼。

最基本的自訂內容安全政策

開發人員可根據專案需求,新增或移除擴充功能規則,或至少使用最低限度的內容安全政策。

擴充功能網頁政策

Chrome 會針對擴充功能網頁強制執行最低內容安全政策。這等同於在資訊清單中指定下列政策:

{
  // ...
  "content_security_policy": {
    "extension_pages": "script-src 'self' 'wasm-unsafe-eval'; object-src 'self';"
  }
  // ...
}

extension_pages 政策無法放寬限制。換句話說,您無法在指令中加入其他指令碼來源,例如在 script-src 中加入 'unsafe-eval'。如果您將禁止的來源加入擴充功能政策,Chrome 會在安裝時擲回以下錯誤:

'content_security_policy.extension_pages': Insecure CSP value "'unsafe-eval'" in directive 'script-src'.

沙箱頁面政策

沙箱頁面的預設政策比擴充功能頁面更為寬鬆,因為沙箱頁面無法存取擴充功能 API,或直接存取無沙箱機制的網頁。您可以視需要自訂沙箱內容安全政策。