Safari ITP到底做什么



我很困惑Safari ITP 2.3在某些方面是如何工作的,以及为什么网站不能轻易绕过它。我不知道在什么情况下应用限制,确切的限制是什么,应用了什么,以及应用了多长时间。

为了澄清我的问题,我把它分成了几个案例。我将参考苹果公司关于ITP 2.3[1]的官方博客文章,您可以引用该文章,但请随时在您的回答中链接到任何其他权威或事实正确的来源。

对于加载在iframe中的第三方站点:

  1. 为什么他们不能只使用localStorage来存储cookie的值,并将这些数据来回发送,而不是作为实际的浏览器cookie标头,而是作为请求正文中的数据或Set AuxCookie之类的标头?类似地,他们可以解析对updaye-localStorage的响应。ITP在第三方iframe中对localStorage的实际限制是什么?

  2. 如果localStorage经常被清除(请参阅问题1),为什么他们不能简单地使用postMessage告诉封闭网站上的脚本存储一些信息(可能是加密的),然后在加载iframe时将其吐回?

对于使用链接装饰的网站

  1. 我仍然不明白iframes中第三方网站对localStorage的限制是什么,这些网站没有被归类为链接装饰器网站。但假设它们是链接装饰器网站。根据[1]的说法,只有当存在查询字符串或片段时,苹果才会开始进一步限制内容。但是,一个网站难道不能把这些信息简单地存储在查询字符串之前的URL路径中吗,即没有?in=here/in/here……像谷歌这样的大公司当然可以简单地选择这样做吗?

  2. 在一个网站被标记为跟踪网站的情况下,这是否意味着其所有非cookie数据都被限制在7天内?服务器设置的cookie怎么样?它们不是被豁免的吗?因此,只需向服务器请求设置cookie,而不是使用Javascript。毕竟,该网站的运营商很可能也可以访问其HTTP服务器和应用程序代码。

对于所有站点

  1. 为什么像谷歌分析或脸书的小工具这样的服务不能简单地说服网站在其DNS中添加CNAME,并将谷歌和脸书的服务器放在像gmail.mysite.com或Analytics.mysite.com这样的子域下?然后,他们可以再次读取和设置cookie,在某些情况下,甚至在顶级域上为不了解情况的网站所有者设置cookie。既然谷歌和脸书在某种意义上已经成为"第二方",这难道不是完全违背了苹果ITP的目标吗?

  2. 在StackOverflow上,当我们在iOS Safari上注销时,StackOverload网络能够同时注销多个网站…如果没有人能够跨网站跟踪用户,这是如何实现的?我听说"第二方cookie"仍然可以存储,但究竟是什么让第二方cookie与第三方不同?

我的问题分为6个案例,但总的主题是:在每一个案例中,苹果最新的ITP是如何在这种情况下工作的,以及它如何真正阻止所有潜在的恶意跟踪案例(以至于一家资金充足的公司不能只做上面的解决方案),同时允许合法的使用案例?

[1]https://webkit.org/blog/9521/intelligent-tracking-prevention-2-3/

我不确定以下答案是否正确,如果不正确,请评论:

  1. 应用程序似乎可以毫无问题地使用localStorage,最长可使用7天。但它不会跨多个封闭域持久化。我甚至建议使用sessionStorage,因为目标只是拥有一个无缝会话。然后,您可以使用一组不同的头来滚动自己的cookie机制,唯一不能实现的是仅http cookie。

  2. 他们可以,但ITP不会让封闭页面上的JavaScript存储cookie(至少,如果您的第三方域被Safari标记为跟踪器,则不会)。

  3. 是的,从技术上讲,"链接装饰"的描述没有提到这种解决方法,但苹果可能已经或将更新其分类器来处理这种解决方法。

  4. 是的,如果第一方网页将向服务器发送请求,并在响应标头中设置cookie,则ITP不会阻止这些cookie,即使它有跟踪网站的iframe。他们说这不是他们的目标。

  5. 是的,事实上,你的第一方网站可以让你的网站重定向到google.com并快速返回(就像oAuth一样),从而在没有cookie的情况下通知谷歌你想要的任何东西。如果你允许的话,谷歌的JavaScript也可以做到这一点。然后,JavaScript可以在iframe中加载你的谷歌托管子域,并设置一个持续多年的cookie,跟踪用户。然而,ITP 2.3似乎也增加了缓解措施,所以你可能会使用A记录?https://cookiesaver.io/archives/analytics-guides/cname-cloaking-mitigation-eliminates-safari-itp-workarounds/

  6. StackExchange网络可能使用#5 版本

最新更新