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。這個方法會傳回 true
或 false
,取決於框架是否可存取未分割的 Cookie。
如果 iframe 使用 Storage Access API (SAA) 存取未分割的跨網站 Cookie (單獨使用 SAA 或搭配相關網站集合),您可以檢查 storage-access
權限,判斷框架是否可以選擇存取未分割的 Cookie。
在 HTTP 要求中偵測第三方 Cookie 存取權
自 Chrome 133 起,系統會在傳送憑證要求時一併傳送標頭 Sec-Fetch-Storage-Access
,讓伺服器知道其呼叫內容是否可存取未分割的 Cookie。這個標頭包含下列三個值之一:
none
:嵌入內容無法存取未分割的 Cookieinactive
:嵌入內容有權存取未區隔的 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。 | 否 |