具有独立分区状态 (CHIPS) 源试用的 Cookie

从 Chrome 100 开始,CHIPS 源试用允许将 Cookie 保存到“分区”存储空间中,并为每个顶级网站提供一个单独的 Cookie 罐。

变更

什么是 CHIPS?

Cookie 具有独立分区状态 (CHIPS) 是一项 Privacy Sandbox 提案,可让开发者选择将 Cookie 加入“分区”存储空间,并为每个顶级网站分别创建单独的 Cookie JAR。

分区第三方 Cookie 将与最初设置它的顶级网站绑定,无法从其他位置访问。这样做的目的是让第三方服务能够设置 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. 您可以通过以下两种方式之一为 Cookie 添加 Partitioned 属性:

    • 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 进行分区。

如果响应不包含 Set-Cookie 标头和 Partitioned,则不会影响网站的源试用参与状态。

如果您未在 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 > yourSite,然后在开发者工具中找到 Partition Key 列。

其他详情

Cookie 要求

  • 必须使用 Secure 设置分区 Cookie。(不再需要 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 和 Service Worker

选择加入源试用的框架将有权使用 JavaScript API(例如 document.cookie 和 CookieStore API)读取和写入分区 Cookie。不在试验脚本中的帧将无法读取或写入分区 Cookie。

Service Worker 不支持 CHIPS 源试用。

互动和分享反馈