最新版本的Apple浏览器Safari 12将提供“智能跟踪预防”(Intelligent Tracking Prevention,ITP)2.0,旨在降低第三方通过Cookie和其他方法跟踪网络用户的能力。
Safari和MacOS、iOS和Linux上的很多应用程序都使用开源的Web浏览器引擎WebKit。WebKit中的ITP功能会收集有关网页资源加载以及用户交互(如“轻触、单击和文本输入”)的统计信息。统计信息会存储在每个顶级私有控制域或eTLD+1中,eTLD+1是由典型的网站URL基地址组成的“有效顶级域名(Top Level Domain)”的简写。一个eTLD+1的例子是social.co.uk,但sub.social.co.uk不是(eTLD+2),co.uk也不是(eTLD)。根据WebKit博客所述,他们使用了一个机器学习模型,基于所收集的统计数据来分类哪些顶级私人控制域有跟踪用户跨站点的能力。所有数据收集和分类均在设备上进行。
因为eTLD被分类为可跟踪用户跨站点,所以在ITP版本1.0和1.1中实现了几项预防措施。如果用户在过去30天内未与某个网站互动,比如“example.com”,那么example.com网站数据和Cookie将立即被清除,新添加的数据也会继续被清除。但是,如果用户将example.com作为顶级域名(通常称为第一方域名),则ITP会认为用户对该网站感兴趣,并暂时调整其行为,如以下时间线所示:
在使用ITP 1.0和1.1时,如果用户在过去24小时内访问了example.com,则在请求example.com资源或将其作为第三方嵌入资源时,其cookie也可用。根据WebKit博客,这样可以允许“使用X帐号登录Y网站”。这意味着用户只能从实际访问的网站获得持久性Cookie和网站数据,并且在浏览网页时会主动删除跟踪数据。
如果用户在过去30天但不是最近24小时访问example.com,example.com会保留其cookie,但它们将被“分区”。分区意味着第三方将根据每个顶级私人控制域或TLD+1获得唯一的独立存储。例如,account.example.com和www.example.com共享分区example.com。这样,即使用户偶尔访问某个网站,也可以保持登录状态,同时限制使用Cookie进行跨网站跟踪。
ITP 2.0已经删除了24小时的Cookie访问窗口。通过身份验证的嵌入只能通过Storage Access API访问第一方Cookie。ITP 2.0还限制了第三方内容,以便只有在用户实际使用内容时才能识别用户,比如撰写评论或播放视频。这也是Safari会向用户询问许可的地方(比如widget要求许可查看其Cookie)。
ITP 2.0还具有检测一个域名被用作“第一方跳转跟踪器”的能力,这意味着它不会被用作第三方内容提供者,而是纯粹通过导航重定向来跟踪用户。这种模式经常出现在社交媒体网站提供的短链接中。其他对策还包括防止追踪者串通(多个站点试图串通来识别用户),以及对于非用户交互的域名使用origin-only referrer(例如,“https://store.example/baby/strollers/deluxe-stroller-navy-blue.html”变成简单的“https://store.example/”)。
Safari技术预览版58现已提供下载,可在macOS High Sierra和macOS Mojave的beta版上安装。
查看英文原文:How Apple's Intelligent Tracking Prevention in Safari Works
领取专属 10元无门槛券
私享最新 技术干货