写点什么

苹果完全屏蔽第三方 Cookie,七天清空本地存储

  • 2020-03-26
  • 本文字数:2206 字

    阅读完需:约 7 分钟

苹果完全屏蔽第三方Cookie,七天清空本地存储

苹果 WebKit 博客分享了智能跟踪预防技术(ITP)的最新进展:完全屏蔽第三方 Cookie,七天清空本地存储,简化开发人员工作。但也有开发者唱起了反调,觉得苹果只是说起来冠冕堂皇,实际上还是为了商业考虑。Why?

苹果完全禁止第三方 Cookie

3 月 24 日,苹果 WebKit 博客发表了一篇题为《Full Third-Party Cookie Blocking and More》的文章,正式宣布它开始默认完全屏蔽第三方 Cookie。苹果表示,“这是对隐私的一项重大改进,因为它消除了任何异常或允许进行一点跨站点跟踪的可能。”


此次更新涉及 iOS,iPad OS 13.4 和 macOS 上的 Safari 13.1,这项名为智能跟踪预防的(ITP)的技术首次发布于 2017 年,从当时的禁止大部分第三方 Cookie 已发展到今天的完全禁止第三方 Cookie。


据了解,Safari 是市面上第一个默认情况下完全禁止第三方 Cookie 的主流浏览器,除 Safari 之外只有 Tor 浏览器是相同的默认设置,而后者的市场份额很小。无独有偶,浏览器市场中绝对的霸主 Chrome 也在今年 1 月份宣布,未来 2 年内将逐步淘汰第三方 Cookie。



2 月全球浏览器市场份额



10 大浏览器型号


苹果表示,将向 W3C 的隐私小组分享相关经验,以帮助其他浏览器取得飞跃。

完全屏蔽的好处是什么?

WebKit 在博客中分享了完全屏蔽第三方 Cookie 的好处,具体而言有以下几个方面。


  • 消除了 Cookie Blocking 中的状态性;

  • 使跨站点泄露用户信息(例如登录指纹)不再可行;

  • 禁用通过第三方请求对网站的跨站点伪造攻击;

  • 删除使用辅助第三方域标识用户的功能。否则,即使用户删除第一方的网站数据,此类设置也可能保留 ID;

  • 简化了开发人员的工作,如果需要使用 Cookie,苹果建议通过 Storage Access API 进行。


鉴于大部分第三方脚本已转移到类似 LocalStorage 的第一方存储方式,苹果同时宣布所有脚本可写入的存储都只保留 7 天,7 天之后本地储存的数据将会被自动删除。受影响的存储格式包括 Indexed DB、LocalStorage、Media keys、SessionStorage 和 Service Worker registrations。


开发人员可以根据 OAuth 2.0 授权、Storage Access API 或临时兼容性修补程序的方式在过渡期解决此协议所带来的不便。


苹果的博文中提到,全球浏览器状态已成为 Web 社区隐私保护中的关键一环。自 2018 年欧盟最严数据保护法规《GDPR》生效以来,各大厂商纷纷在隐私保护的铁锤下吞下了巨额罚单:谷歌被处以 5000 万欧元罚款,英航、万豪等大企业也因数据泄露被处以数千万级别的罚款。


第三方 Cookie 由于其随着时间发展,收集大量用户信息的特点,成为了数据泄露的重灾区。专家表示,“在 HTML5 本地存储相关技术出现前,Cookie 是在客户端保存用户数据的唯一手段,但 Cookie 本身有很多问题,比如大小限制、明文存储等。不过,其最大的问题还是安全性。很多的安全漏洞都是源于 Cookie 被窃取。”


在《GDPR》生效以后,很多网站开始添加 Cookie 通知,但这对于隐私保护并没有起到多好的效果,于是苹果、谷歌等企业开始决定从源头上禁止第三方 Cookie 以解决这个问题。

来自开发者的不同声音

一位名为 Aral Balkan 的开发者在自己的博客上写下了一篇文章,标题名为《Apple just killed Offline Web Apps while purporting to protect your privacy: why that’s A Bad Thing and why you should care》。从标题上就可以看出观点的激进,而内容事实上也同样如此。


在他看来,完全屏蔽第三方 Cookie 以保护隐私只是看起来很美,而 7 天清空本地存储的规则却完全阻止了未来任何去中心化应用程序使用浏览器 (客户端) 作为对等网络中可信复制节点的可能。


更进一步,他认为苹果公司表面上表现得很关注隐私,实际上是因为不少厂商的做法侵犯了它将隐私作为商业模式的核心宗旨。


“你几乎可以认为,他们会用 App Store 来干点儿什么。”


Balkan 的观点虽然激进,但也并非全无道理。事实上,苹果一直以来饱受诟病的地方正是如此。此前 Hacker News 上就曾有开发者广泛讨论苹果在自己的平台上对于 Web 技术的层层阻碍。


用来构建 App 的编程语言背后的软件技术,可以使开发者在开发支持 Linux、Android、Windows 和 macOS 等操作系统产品时,“复用”他们为 Web 程序所编写的代码。但是苹果并不喜欢这种 Web 技术的循环再利用方式,它希望 Mac App Store 中塞满你在其他任何地方都找不到的应用程序,不想让在各个平台上都能见到的应用充斥 App Store。


比如之前苹果 Mac App Store 对 Electron 的禁令:这些应用程序“试图隐藏私有 API 的使用”。苹果的理由是这些私有化 API 存在潜在风险,这个理由本身并没有问题,但考虑到 Electron 多年来一直使用私有化 API 的相安无事甚至大幅改善了功耗,以及苹果推荐的工具让用户体验变差的事实,不得不引人深思。


苹果公司还阻碍了渐进式 Web 应用程序(PWA)的落地,这项技术与 Electron 一样,允许开发人员为桌面和移动端构建效果类似原生的应用。苹果的做法是只实现该标准的一部分,结果让它与完整标准相距甚远,使开发者难以依靠。如果用户能在 Chrome 或 Firefox 中启动 PWA 应用就不会出现这些问题,但是 iPhone 和 iPad 用户无法安装第三方浏览器,苹果公司也关闭了用户使用基于 PWA 技术的途径。


而在国内,小程序与苹果的爱恨情仇就更为广大开发者所知,这里不再赘述,参考:小程序:越狱未遂


就事论事而言,苹果此举值得称赞。但禁用第三方 Cookie 就能保护好用户隐私了吗?却也未必。


有人说,互联网开始变得不安全,就是因为搞安全的人出来了。此言诚不我欺。


2020-03-26 14:034560
用户头像
小智 让所有人认同的文字称不上表达

发布了 408 篇内容, 共 407.5 次阅读, 收获喜欢 1986 次。

关注

评论 1 条评论

发布
用户头像
微软赋能 web,苹果限制 web
2020-03-26 16:16
回复
没有更多了
发现更多内容

CSS学习笔记(三)

lxmoe

CSS 前端 学习笔记 11月月更

互联网+背景下企业客户服务的创新之路

Baklib

快速搭建Jenkins集群

程序员欣宸

DevOps jenkins 11月月更

带你实现react源码的核心功能

goClient1992

React

从React源码角度看useCallback,useMemo,useContext

goClient1992

React

从React源码来学hooks是不是更香呢

goClient1992

React

从这两道题重新理解,JS的this、作用域、闭包、对象

loveX001

JavaScript

【docker】软链接迁移docker碰到的问题

非晓为骁

Docker 迁移

每日一题之Vue的异步更新实现原理是怎样的?

bb_xiaxia1998

Vue

OKR之剑·实战篇02:OKR执行前的热身准备

vivo互联网技术

团队管理 OKR 目标管理

Web组态软件之Sovit2D组态可视化编辑器

2D3D前端可视化开发

组态软件 web组态 组态编辑器 工业组态软件 web组态软件

什么样的vue面试题答案才是面试官满意的

bb_xiaxia1998

Vue

湖仓一体电商项目(五):内网穿透工具-网云穿

Lansonli

湖仓一体 11月月更

随机森林-随机森林在乳腺癌数据上的调参

烧灯续昼2002

Python 机器学习 算法 sklearn 11月月更

令人头秃的js隐式转换面试题,你能做对吗

loveX001

JavaScript

黑客“劫持”了一颗卫星,用它直播黑客大会和放电影

博文视点Broadview

阿里云日志服务SLS携手观测云发布可观测性解决方案,共建可观测应用创新

TalkingData

阿里云 可观测 存储上云 日志服务 sls

拿到大厂前端offer的前端开发是怎么回答面试题的

loveX001

JavaScript

JavaScript-防抖

格斗家不爱在外太空沉思

JavaScript 前端 11月月更

腾讯前端二面常考react面试题总结

beifeng1996

React

4.NLP领域任务如何选择合适预训练模型以及选择合适的方案【规范建议】【ERNIE模型首选】

汀丶人工智能

nlp 11月月更

谈谈企业级前端 Angular 应用的定制化二次开发话题

汪子熙

前端开发 angular SAP Hybris 11月月更

Hessian Hessian2 JDK 序列化性能对比

water

手写一个Redux,深入理解其原理-面试进阶

beifeng1996

React

【LeetCode】字符串轮转Java初学者题解

Albert

算法 LeetCode 11月月更

Java高效找出两个大数据量List集合中的不同元素

共饮一杯无

Java List 11月月更

湖仓一体电商项目(四):项目数据种类与采集

Lansonli

湖仓一体 11月月更

JavaScript-节流

格斗家不爱在外太空沉思

JavaScript 前端 11月月更

你是如何使用React高阶组件的?

beifeng1996

React

京东前端经典react面试题合集

beifeng1996

React

【选型攻略】MLCC选型,要注意些什么?易学易用

元器件秋姐

元器件选型 MLCC选型 元器件选型攻略 元器件电商平台

苹果完全屏蔽第三方Cookie,七天清空本地存储_大前端_小智_InfoQ精选文章