写点什么

苹果完全屏蔽第三方 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:034232
用户头像
小智 让所有人认同的文字称不上表达

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

关注

评论 1 条评论

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

MyBatis(四):参数处理器,linux运维架构师

Java 程序员 后端

mybatis常用注解(绝对经典),java程序设计教程张延军课后答案

Java 程序员 后端

MyCat:第四章:Mycat中的概念,linux内核编译教程

Java 程序员 后端

linux安装oracle XE,详解Java架构进阶面试题

Java 程序员 后端

Mybatis 传参的各种姿势,看这一篇就足够,java使用教程下载

Java 程序员 后端

MyBatis详解(二),java开发岗高频面试题全解析祖国的花朵

Java 程序员 后端

Linux系统:第十章:服务器环境搭建,附Java面经

Java 程序员 后端

mybatis-plus代码生成器,一键生成代码,springcloud教程百度云

Java 程序员 后端

Mybatis一二级缓存实现原理与使用指南,java后端技术梳理

Java 程序员 后端

MyBatis详解(二)(1),轻松拿到了阿里Java高级开发工程师的offer

Java 程序员 后端

MySQL 5,java架构师成长直通车

Java 程序员 后端

markdown编辑器的使用教程,Java成长路线图

Java 程序员 后端

Maven的核心概念,java面试高频知识点

Java 程序员 后端

Maven相关知识点整理,java基础语法的格式

Java 程序员 后端

mybatis-plus使用教程,java面试题基础篇

Java 程序员 后端

MyBatis的jdbcType和javaType详解,spring框架入门教程

Java 程序员 后端

KubeVela + KEDA:为应用带来,kafka入门

Java 程序员 后端

Linux内核结构组成之进程调度,java开发直播系统相关教程

Java 程序员 后端

Log4j使用指南,java入门视频教程

Java 程序员 后端

Mybatis Generator最完整配置详解,Java面试

Java 程序员 后端

mybatis开发要点-insert主键ID获取和多参数传递,mybatis原理详解

Java 程序员 后端

Kubernetes教程之新手安装必看(快速浏览少走弯路),java集合详解和集合面试题目

Java 程序员 后端

MyCat教程【分库分表】,java教程pdf百度网盘

Java 程序员 后端

MyBatis详解(一),实战java高并发程序设计

Java 程序员 后端

MyBatis详解:spring和mybatis整合,linux视频格式转换

Java 程序员 后端

Linux上安装Mycat和配置连接MySQL 8,三年经验月薪50k我是怎么做到的

Java 程序员 后端

Linux云服务器搭建SFTP服务器图片服务器,java线程原理

Java 程序员 后端

Linux系统:第十一章:常用命令,华为java面试面经

Java 程序员 后端

MongoDB :第六章:Java程序操作MongoDB,mysql复合索引面试题

Java 程序员 后端

Myabtis源码分析六-代理对象Mapper的创建流程分析,死锁全详解,一文带你搞定

Java 程序员 后端

Mybatis学习笔记--Mybatis实现CRUD,springboot注解面试题

Java 程序员 后端

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