在 Chrome 中偵測第三方 Cookie 可用性

Chrome 已提出全新體驗,讓使用者在瀏覽網頁時選擇如何處理第三方 Cookie。網站和服務可能需要偵測第三方 Cookie 是否可在特定情境下使用。Chrome 有兩種主要方法可偵測嵌入內容的第三方 Cookie 存取權:使用 hasStorageAccess JavaScript 方法,以及觀察 Sec-Fetch-Storage-Access 標頭

Privacy Sandbox 推出了 API,在符合特定條件時,這些 API 可能會授予特定框架存取第三方 Cookie 的權限。因此,請務必根據每個嵌入項目偵測未分割 Cookie 的存取權。

偵測 iframe 中的第三方 Cookie 存取權

如果 iframe 內容託管在與使用者網址列中顯示的網站不同的網站上,就視為跨網站,且可能會受到第三方 Cookie 限制。iframe 可以透過呼叫 await document.hasStorageAccess(),偵測目前是否有權存取第三方 Cookie。這個方法會傳回 truefalse,取決於框架是否可存取未分割的 Cookie。

如果 iframe 使用 Storage Access API (SAA) 存取未分割的跨網站 Cookie (單獨使用 SAA 或搭配相關網站集合),您可以檢查 storage-access 權限,判斷框架是否可以選擇存取未分割的 Cookie。

在 HTTP 要求中偵測第三方 Cookie 存取權

自 Chrome 133 起,系統會在傳送憑證要求時一併傳送標頭 Sec-Fetch-Storage-Access,讓伺服器知道其呼叫內容是否可存取未分割的 Cookie。這個標頭包含下列三個值之一:

  • none:嵌入內容無法存取未分割的 Cookie
  • inactive:嵌入內容有權存取未區隔的 Cookie,但尚未啟用
  • active:嵌入內容可存取未分割的 Cookie

授予嵌入未分割 Cookie 存取權的條件

您可以透過多種方式授予未分割的第三方 Cookie 存取權,以支援這些 Cookie 提供必要功能的情況。下列方法會授予未區隔的 Cookie 存取權。在某些情況下,必須先呼叫 requestStorageAccess()requestStorageAccessFor(),系統才會授予存取權。

方法 範例 是否必須呼叫 requestStorageAccess?
Storage Access API 提示 系統會提示使用者允許儲存空間存取權,使用者選取「允許」。
Federated Credential Management 使用者透過聯合身分提供者 (IdP) 登入;IdP 的框架要求儲存空間存取權。
相關網站集合 嵌入內容和嵌入者屬於相同的 RWS。
使用者設定中啟用 3PC 使用者選擇允許 3PC 存取所有瀏覽資料,或只允許特定來源存取。
經驗法則例外狀況 Chrome 會偵測啟發式模式,並自動授予未分割 Cookie 的存取權。不需要呼叫 requestStorageAccess()
暫時性例外狀況(例如寬限期) 該網站或服務已註冊為 Chrome 臨時例外狀況,因為它們正在轉換至更耐用的解決方案。
企業政策 公司的 Chrome Enterprise 管理員已選擇允許部分或所有流量使用 3PC。