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

從 Chrome 100 開始,CHIPS 來源試用允許將 Cookie 加入「分區」儲存空間,並針對每個頂層網站使用不同的 Cookie jar 檔案。

異動

什麼是 CHIPS?

Cookie 具有獨立分區狀態 (CHIPS)」是一項 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 說明文件

DevTools

  1. 請前往 chrome://flags/#partitioned-cookies,將設定變更為「已啟用」。
  2. 按一下右下角的「重新啟動」按鈕,或前往 chrome://restart,以重新啟動 Chromium。
  3. 前往 chrome://settings/cookies,並確認圓形按鈕已設為「允許所有 Cookie」或「在無痕模式中封鎖第三方 Cookie」。
  4. 透過嵌入項目載入網站。
  5. 開啟開發人員工具,前往「Application」 >「Cookies」 >「您的網站」,然後在開發人員工具中查看「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 來源試用。

互動及分享意見回饋