從 Chrome 100 開始,CHIPS 來源試用允許將 Cookie 選擇採用「分區」以及個別頂層網站專屬的 Cookie jar 檔案。
異動
- 2022 年 9 月:請參閱更新資訊,瞭解如何透過 Chrome 106 延長來源試用。
- 2022 年 8 月:移除
path=/
要求 (請參閱 github.com/privacycg/CHIPS/pull/49)。 - 2022 年 6 月:自 Chrome 104 起,使用
Partitioned
屬性設定 Cookie 時,不再需要省略Domain
屬性。 - 2022 年 5 月:自 Chrome 103 起,參與者不再需要傳送
Accept-CH: Sec-CH-Partitioned-Cookies
標頭即可選擇加入來源試用。
什麼是 CHIPS?
具有獨立分區狀態 (CHIPS) 的 Cookie 是一項 Privacy Sandbox 提案,可讓開發人員將 Cookie 設為「分區」以及個別頂層網站專用的 Cookie jar 檔案。
已分區的第三方 Cookie 會與最初設定的頂層網站連結,且無法透過其他位置存取。目的是允許第三方服務設定 Cookie,但只在其最初設定的頂層網站環境內讀取。
誰的來源試用?
這項試用措施屬於第三方來源試用,可讓嵌入內容的供應商在多個網站上試用新功能。
如果網站以第一方身分註冊試用,該網站上的所有第三方內容供應商也可以使用 Cookie 分區。這些第三方供應商也應該要收到額外的 HTTP 標頭,表明其在來源試用中註冊。
試用期會持續多久?
我們將在 Chrome 100 至 Chrome 105 中提供試用。查看 Chrome 發布時間表,查看預計的發布日期。
如何註冊來源試用
必要條件
Chrome 穩定版 103。
步驟
如要註冊來源試用並取得網域權杖,請前往 CHIPS 來源試用頁面。
在任何含有
Set-Cookie
標頭且包含Partitioned
的回應中,加入包含有效符記的Origin-Trial
標頭:Origin-Trial: <ORIGIN TRIAL TOKEN>
透過下列其中一種方式,將
Partitioned
屬性新增至 Cookie:在
Set-Cookie
標頭中:Set-Cookie: __Host-name=value; Secure; Path=/; SameSite=None; Partitioned;
在 JavaScript 中:
cookieStore.set({ name: '__Host-name', value: 'value', secure: true, path: '/', sameSite: 'none', // Set a partitioned cookie using the attribute below. partitioned: true, });
範例
參與來源試用的網站必須在回應中加入下列標頭:
Origin-Trial: <ORIGIN TRIAL TOKEN>
Set-Cookie: __Host-name=value; Secure; Path=/; SameSite=None; Partitioned;
確認運作正常
檢查標頭
如果您已成功加入來源試用,並設定分區 Cookie,則 Chrome 用戶端後續發出的要求會包含 Sec-CH-Partitioned-Cookies: ?0
要求標頭,直到目前的工作階段結束為止。
Sec-CH-Partitioned-Cookies: ?0
Cookie: __Host-name=value
如果您的網站在沒有這項用戶端提示的情況下收到 Cookie,就表示無法選擇啟用來源試用,且您收到的 Cookie 不會劃分出來。
如果回應中未包含包含 Partitioned
的 Set-Cookie
標頭,則不會影響網站的來源試用參與狀態。
如果您未在 Origin-Trial
標頭中使用有效符記回應,電腦上的分區 Cookie 將轉換為未分區的 Cookie。
詳情請參閱 chromium.org 的 CHIPS 說明文件。
開發人員工具
- 請前往
chrome://flags/#partitioned-cookies
,將設定變更為「已啟用」。 - 按一下 [重新啟動],重新啟動 Chromium按鈕,或前往 chrome://restart。
- 前往
chrome://settings/cookies
,並確認圓形按鈕已設為「允許所有 Cookie」或「在無痕模式中封鎖第三方 Cookie」 - 透過嵌入項目載入網站。
- 開啟開發人員工具並「Application」>Cookie >您的網站,然後在開發人員工具中尋找「Partition Key」欄。
其他詳細資訊
Cookie 相關規定
- 分區 Cookie 必須使用
Secure
設定。(不再需要Path=/
:請參閱 github.com/privacycg/CHIPS/pull/49)。 SameParty
屬性無法與Partitioned.
搭配使用
無論 Cookie 分區啟用或停用功能,Chrome 都會對使用 Partitioned
屬性設定的 Cookie 強制執行這些規則。系統會拒絕設定不正確的 Cookie。
如果 Cookie 分區已停用,但 Cookie 以正確的屬性設定,Chrome 就會忽略 Partitioned
屬性,且產生的 Cookie 仍會透過要求傳送至其主機的不同頂層網站 (與設定該屬性的位置不同)。
分區 Cookie 也應包含 SameSite=None
屬性,以便在不支援 Cookie 分區的瀏覽器中透過第三方內容傳送 Cookie。
JavaScript 和服務 Worker
選擇加入來源試用的影格可以使用 JavaScript API (例如 document.cookie
和 CookieStore API) 讀取及寫入分區 Cookie。凡是不在試用指令碼中的影格,將無法讀取或寫入分區 Cookie。
Service Worker 不支援 CHIPS 來源試用。
互動及分享意見回饋
- 提報問題並按照 GitHub 進行討論。
- 前往 Privacy Sandbox 開發人員支援存放區提問或參與討論。
- 瞭解如何透過各種管道對 Privacy Sandbox 提案提供意見。