Safari浏览器的智能跟踪预防工作原理

2018 年 6 月 20 日

最新版本的 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

2018 年 6 月 20 日 12:34912
用户头像

发布了 731 篇内容, 共 359.6 次阅读, 收获喜欢 1824 次。

关注

评论

发布
暂无评论
发现更多内容

智慧社区系统开发方案,智慧平安小区综合管理系统建设

WX13823153201

智慧社区系统开发

一文带你彻底了解大数据处理引擎Flink内存管理

华为云开发者社区

大数据 数据 处理

码了2000多行代码就是为了讲清楚TLS握手流程(续)

新世界杂货铺

golang https

Prometheus TSDB(Part 2):预写日志(WAL)和检查点

_why先生

云原生 Prometheus tsdb 可观察性

LeetCode题解:127. 单词接龙,BFS+统计单词变化次数,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

EZYTRX波场智能合约APP系统软件开发

开發I852946OIIO

系统开发

IDEA 文档插件 DocView 版本更新:修改 UI 并支持 IDEA 2020.3 !

程序员小航

idea插件 IntelliJ IDEA 文档生成

anyRTC实时音视频-社交娱乐解决方案

anyRTC开发者

ios android 音视频 WebRTC RTC

SPI 在 Dubbo中 的应用

vivo互联网技术

Java jdk dubbo spi

智慧警务可视化平台开发,重点人员管控系统搭建

t13823115967

智慧公安 智慧警务系统开发

盘点2020 | 30岁了,我终于入门编程了

希望

盘点2020

DeFi(去)中心化DAPP系统软件开发

开發I852946OIIO

系统开发

盘点2020 | 疫情下的思考和学习

soolaugust

盘点2020

智慧城市建设,社区智能化系统搭建解决方案

t13823115967

智慧城市 平安小区

从 JMM 透析 volatile 与 synchronized 原理

码哥字节

volatile JVM JMM Java 25 周年 synchronized

Canvas入门实战之用javascript面向对象实现一个图形验证码

徐小夕

Java 前端 canvas

硬核编程:30天=一个网站+一份周刊

老魚

程序员 建站 web全栈

DolphinDB与MongoDB在时序数据上的对比测试

DolphinDB

mongodb 分布式系统 时序数据库 DolphinDB 数据库开发

【小菜学网络】数据链路层概述

fasionchan

网络编程 计算机网络 网络协议 TCP/IP

在线医疗的发展和优势

anyRTC开发者

android 音视频 WebRTC RTC 医疗方案

答了Mybatis这个问题后,面试官叫我回去等通知……

田维常

mybatis

《大数据算法》.pdf

田维常

算法

腾讯高工强烈推荐的“Netty速成手册”原理+应用+调优,带你将知识点一网打尽

比伯

Java 编程 程序员 架构 Netty

dubbogo 3.0:牵手 gRPC 走向云原生时代

阿里巴巴云原生

go gRPC 云原生 中间件 dubbo-go

硬肝到秃头!Alibaba强推并发编程笔记我跪了,真的学到好多东西!

Java架构追梦

Java 学习 架构 面试 并发编程

如何快速打造一款钉钉 Go sdk

Ceelog

go golang 钉钉 企业微信

通过Postman和coding.net发布API

太极程序员

Postman API

【经验分享】RTC技术系列之音频编解码

邵帅

产品策略闭环是个什么环?

万事ONES

项目管理 团队协作 需求管理 需求分析 产品策略

量化交易APP系统软件开发(现成)

开發I852946OIIO

系统开发

架构师训练营W09作业

Geek_f06ede

Safari浏览器的智能跟踪预防工作原理-InfoQ