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

可透過網頁存取的資源是指擴充功能中的檔案,可供網頁或其他存取 。擴充功能通常會使用這項功能顯示需要 會載入網頁,但擴充功能套件中包含的任何素材資源都可以透過網頁存取。

在預設情況下,沒有任何資源可供網路存取,因為這可讓惡意網站對使用者安裝的惡意網站執行指紋擴充功能 或利用已安裝的擴充功能中的安全漏洞 (例如 XSS 錯誤)。僅限從擴充功能來源載入的網頁或指令碼 即可存取這項擴充功能的資源

資訊清單宣告

使用 web_accessible_resources 資訊清單屬性宣告要公開哪些資源 從哪些來源著手這個屬性是宣告資源存取規則的物件陣列。每個物件 會列出許多擴充功能資源,且至少須提供下列其中一項 matches 的值或 extension_ids 鍵,指出可存取這些資源的來源。

{
  ...
  "web_accessible_resources": [
    {
      "resources": [ "test1.png", "test2.png" ],
      "matches": [ "https://web-accessible-resources-1.glitch.me/*" ]
    }, {
      "resources": [ "test3.png", "test4.png" ],
      "matches": [ "https://web-accessible-resources-2.glitch.me/*" ]
    }
  ],
  ...
}

陣列中的每個物件都包含以下元素:

"resources"
字串陣列,每個字串都包含擴充功能根目錄中特定資源的相對路徑。資源可能包含星號 (*) 代表萬用字元比對。舉例來說,"/images/*" 會以遞迴方式顯示擴充功能 images/ 目錄中的所有內容,而 "*.png" 則會公開所有 PNG 檔案。
"matches"
字串陣列,每個字串都包含一個「比對模式」,用於指定哪些網站可以存取這組資源。系統只會使用來源來比對網址。來源包含子網域比對。Google Chrome 發出「比對模式無效」錯誤。
"extension_ids"
字串陣列,每個字串都包含可存取資源的擴充功能 ID。

每個元素都必須包含 "resources" 元素和 "matches""extension_ids" 元素。這會建立對應,將指定資源公開至符合該模式的網頁或具有相符 ID 的擴充功能。

資源可在使用網址的網頁中查看 chrome-extension://[PACKAGE ID]/[PATH],可使用 runtime.getURL() 產生 方法。系統會使用適當的 CORS 標頭提供資源,以便利用該標頭 使用 fetch()

從網路來源前往擴充功能資源的導覽功能會遭到封鎖, 並列為可在網路上存取請注意以下極端情況:

  • 擴充功能使用 webRequest API 重新導向公開檔案時 如果資源要求的資源要求無法透過網路存取,這類要求也會遭到封鎖。
  • 系統會封鎖來自公開資源的重新導向 (即便重新導向資源擁有無法存取網路的資源) 。
  • 啟用無痕模式時,除非 "incognito" 欄位的值設為 "split",否則瀏覽時無法進行無痕模式。

您不需要允許使用內容指令碼

範例

Web Accessable Resources 範例:示範如何在工作擴充功能中使用這個元素。