Cookie 具有獨立分區狀態 (CHIPS) 來源試用

從 Chrome 100 開始,CHIPS 來源試用允許將 Cookie 選擇採用「分區」以及個別頂層網站專屬的 Cookie jar 檔案。

異動

什麼是 CHIPS?

具有獨立分區狀態 (CHIPS) 的 Cookie 是一項 Privacy Sandbox 提案,可讓開發人員將 Cookie 設為「分區」以及個別頂層網站專用的 Cookie jar 檔案。

已分區的第三方 Cookie 會與最初設定的頂層網站連結,且無法透過其他位置存取。目的是允許第三方服務設定 Cookie,但只在其最初設定的頂層網站環境內讀取。

誰的來源試用?

這項試用措施屬於第三方來源試用,可讓嵌入內容的供應商在多個網站上試用新功能。

如果網站以第一方身分註冊試用,該網站上的所有第三方內容供應商也可以使用 Cookie 分區。這些第三方供應商也應該要收到額外的 HTTP 標頭,表明其在來源試用中註冊。

試用期會持續多久?

我們將在 Chrome 100 至 Chrome 105 中提供試用。查看 Chrome 發布時間表,查看預計的發布日期。

如何註冊來源試用

必要條件

Chrome 穩定版 103。

步驟

  1. 如要註冊來源試用並取得網域權杖,請前往 CHIPS 來源試用頁面

  2. 在任何含有 Set-Cookie 標頭且包含 Partitioned 的回應中,加入包含有效符記的 Origin-Trial 標頭:

    Origin-Trial: <ORIGIN TRIAL TOKEN>
    
  3. 透過下列其中一種方式,將 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 不會劃分出來。

如果回應中未包含包含 PartitionedSet-Cookie 標頭,則不會影響網站的來源試用參與狀態。

如果您未在 Origin-Trial 標頭中使用有效符記回應,電腦上的分區 Cookie 將轉換為未分區的 Cookie。

詳情請參閱 chromium.org 的 CHIPS 說明文件

開發人員工具

  1. 請前往 chrome://flags/#partitioned-cookies,將設定變更為「已啟用」。
  2. 按一下 [重新啟動],重新啟動 Chromium按鈕,或前往 chrome://restart。
  3. 前往 chrome://settings/cookies,並確認圓形按鈕已設為「允許所有 Cookie」或「在無痕模式中封鎖第三方 Cookie」
  4. 透過嵌入項目載入網站。
  5. 開啟開發人員工具並「Application」>Cookie >您的網站,然後在開發人員工具中尋找「Partition Key」欄。
,瞭解如何調查及移除這項存取權。

其他詳細資訊

Cookie 相關規定

無論 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 來源試用。

互動及分享意見回饋