智能防追踪 2.2

注意:请阅读其他博客文章,了解智能防追踪和存储访问 API 过去的技术更新。

iOS 12.3 和 macOS Mojave 10.14.5 上 Safari 的测试版包含了更新的智能防追踪(ITP)版本。为了便于开发者沟通,我们将其称为 ITP 2.2。

通过链接装饰进行追踪将客户端 Cookie 的存储限制为 1 天

从 ITP 2.2 开始,通过 document.cookie 设置的持久性 Cookie 在满足以下两个条件时,其存储时间将被限制为一天

  1. 被归类为具有跨站追踪能力的域,负责将用户导航到当前网页。
  2. 上述导航的最终 URL 包含查询字符串和/或片段标识符。

本博客文章的其余部分将详细探讨这一点。

什么是通过链接装饰进行的跨站追踪?

我们首先解释一下此项更改的原因。智能防追踪旨在通过阻止跨站追踪来保护用户隐私。自 ITP 1.0 推出以来,我们发现 URL 查询字符串在跨站追踪中的使用有所增加。

social.example link decoration to news.example, blog.example, and shop.example

在上面的插图中,社交网络网站 social.example 正在为每个出站链接添加一个“点击 ID”作为查询参数。这些点击 ID 都与 social.example 数据库中的真实用户 ID“Jane Doe”相关联。

一旦 Jane 访问目标页面,社交网络就会使用 JavaScript 读取 URL 查询字符串中的点击 ID,并将其存储在第一方 Cookie 中。社交网络是如何在目标网站上获得脚本能力的呢?目标网站可以从社交网络或广告网络导入脚本以集成功能,并且这些脚本可以增强以读取、存储和报告传入的点击 ID。

从那时起,每当 Jane 访问 news.example、blog.example 或 shop.example 时,social.example 的脚本都会读取点击 ID 第一方 Cookie,将其发送到其服务器,并识别出她。现在 social.example 可以通过追踪她在这些网站上的活动来丰富其 Jane 的个人资料,并且可以在这些网站上向她投放个性化广告,所有这些都只因为她曾通过 social.example 上的链接导航到那里。

这表明点击 ID 如何有效地充当用户 ID 进行跨站追踪。

通过链接装饰进行跨站追踪的进一步后果

链接装饰还有两个额外后果,它们与用户隐私和网络兼容性有关。

当用户分享链接时用户 ID 会被传输

当追踪信息被添加到链接中时,它可以在链接共享时用于连接用户和设备。上例中的 Jane Doe 可能想与同事分享 news.example 链接。通过链接装饰,她的 social.example 用户 ID 现在被复制到她同事的网页浏览器中,并可用于在 social.example 平台上将她与她的同事关联起来。

某些网站在收到未知查询参数时无法加载

许多网站在收到其服务器无法识别的查询参数时,根本无法加载。我们遇到过一个案例,一个喜剧网站的链接在流行的社交网络上被分享,结果该网站因为社交网络的链接装饰而显示为空白。随后出现了以下评论

  • 评论者 1:“链接已损坏。”
  • 发帖者:“很抱歉。这是链接,再试一次……”
  • 评论者 1:“那个链接也坏了。”
  • 评论者 2:“是的,社交网络会干扰链接。你必须使用链接缩短工具。”

何时会精确地使 Cookie 过期?

以下是 ITP 2.2 将 Cookie 持久性限制为一天的示例

  1. 网站 social.example 已被 ITP 归类为具有跨站追踪能力。此分类的工作原理在原始 ITP 博客文章ITP 2.0 博客文章中有详细解释。
  2. 用户点击 social.example 上的一个链接。
  3. 点击导致跨站导航,最终到达 shop.example,并且着陆 URL 包含查询字符串和/或片段标识符
  4. shop.example 网页通过 document.cookie 设置了一个持久性 Cookie。这个 Cookie 的最长有效期现在将是一天。

广告点击归因如何处理?

您可能还记得我们的原始 ITP 博客文章中提到,链接装饰是一种在导航中实现广告归因的方式。这种归因应该向目标网站提供有关点击了什么广告以及在哪个网站点击的信息,而不是关于用户是谁的信息。

上述的链接装饰方式正被用于用户的跨站追踪。

如果我的网站使用查询字符串或片段怎么办?

与 Cookie 和其他网络存储一样,查询字符串和片段既有合法用途,也有侵犯隐私的用途,而跨站追踪器则试图使其活动与良好用途无法区分。我们有义务为 Safari 用户阻止跨站追踪。

有人建议 ITP 应该在点击源具有跨站追踪能力时直接删除任何链接装饰。我们选择不这样做,因为存在合法用途以及破坏网站兼容性的风险(参见上面的喜剧示例)。

但请注意,document.cookie 存储的一天限制仅适用于您的网站是由另一个具有跨站追踪能力的网站导航而来,并且仅适用于当前网页。

开发者,您可以这样做

我们已经与开发者讨论了通过链接装饰进行跨站追踪是如何产生的。毕竟,用户 ID 存储在网站的第一方 Cookie 中——这是一个由他们管理的存储空间。

我们的印象是许多开发者从未意识到这种情况正在发生;在许多情况下,嵌入在网站上的第三方 JavaScript 更改引入了链接装饰,而网页开发者对此并不知情。然而,一旦开发者知道他们的网站被用于跨站追踪目的,他们就可以选择过滤掉追踪者的链接装饰。

我们希望网页开发者能与我们一起,在更好地保护用户隐私的同时,共同创造最佳的网络用户体验。