資訊清單 - 可供網路存取的資源

指定封裝資源路徑的字串陣列,這些資源將可在網頁內容中使用。這些路徑是與套件根目錄相對的路徑,且可能包含萬用字元。舉例來說,如果擴充功能插入內容指令碼,並想為 example.com 建構某些自訂介面,則該擴充功能可允許任何介面所需的資源 (圖片、圖示、樣式表、指令碼等),如下所示:

{
  ...
  "web_accessible_resources": [
    "images/*.png",
    "style/double-rainbow.css",
    "script/double-rainbow.js",
    "script/main.js",
    "templates/*"
  ],
  ...
}

接著,這些資源就能透過 chrome-extension://[PACKAGE ID]/[PATH] 網址在網頁中取得,您可以使用 extension.getURL 方法產生。加入許可清單的資源會透過適當的 CORS 標頭提供,因此可透過 XHR 等機制使用。

除非資源標示為可供網路存取,否則從網路來源到擴充功能資源的瀏覽都會遭到封鎖。請注意以下極端情況:

  • 當擴充功能使用 webRequestdeclarativeWebRequest API 將公開資源要求重新導向至無法存取的網路資源時,系統也會封鎖這類要求。
  • 即使無法存取網路的資源是由重新導向擴充功能擁有,上述做法也是如此。

內容指令碼本身不必加入許可清單。

在資訊清單第 2 版之前,擴充功能內的所有資源皆可透過網路上的任何頁面存取。這可讓惡意網站在使用者安裝的擴充功能中安裝或利用安全漏洞 (例如 XSS 錯誤) 來指紋。將可用性限制在明確預計可供網路存取的資源,這樣可以盡量減少可用攻擊途徑,並保護使用者隱私。

是否預設為提供

使用 manifest_version 2 以上版本的套件內部資源會預設封鎖,您必須加入許可清單,才能透過這個屬性使用這些資源。

根據預設,系統會提供使用 manifest_version 1 的套件內的資源,但if如果您設定這個屬性,系統會將該資源視為所有許可清單資源的完整清單。系統不會封鎖未列出的資源。