資訊清單 - 內容安全政策

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

「額外資訊頁面」政策適用於擴充功能中的網頁和工作站環境。這包括擴充功能彈出式視窗、背景工作站,以及含有擴充功能所開啟 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 政策範圍不得超出這個最小值。換句話說,您無法在指令中加入其他指令碼來源,例如將 'unsafe-eval' 新增至 script-src。如果您將不允許的來源加到擴充功能政策,Chrome 會在安裝時擲回以下錯誤:

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

沙箱頁面政策

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