当浏览器全面禁用三方 Cookie

作者:微信小助手

发布时间:2020-04-19T21:14:31

(给前端大全加星标,提升前端技能

作者:code秘密花园 公号 / ConardLi (本文来自作者投稿)

苹果公司前不久对 Safari 浏览器进行一次重大更新,这次更新完全禁用了第三方  Cookie,这意味着,默认情况下,各大广告商或网站将无法对你的个人隐私进行追踪。而微软和 Mozilla 等也纷纷采取了措施禁用第三方 Cookie,但是由于这些浏览器市场份额较小,并没有给市场带来巨大的冲击。

从 2017 年截至 2019 年底, Google 面临的罚款总额已经超过 93 亿欧元,其中一大原因便是侵犯用户数据隐私。迫于巨大压力,Google Chrome 官方团队前不久也宣布,为了提升用户隐私和安全,未来两年将完全禁用第三方 Cookie

在完全不能写入三方 Cookie 的情况下,将会对前端的数据读写方式,甚至是整个广告行业带来巨大影响。

Cookie 的意义

众所周知,HTTP 协议是无状态的协议,如果你在同一个客户端向服务器发送多次请求,服务器不会知道这些请求来自同一客户端。

这正是 HTTP 协议得以广泛应用的原因,试想一下,如果它是有状态协议,你必须要时刻与服务器建立链接,那么如果连接意外断开,整个会话就会丢失,重新连接之后一般需要从头开始;而如果是无状态协议,使得会话与连接本身独立起来,这样即使连接断开了,会话状态也不会受到严重伤害,保持会话也不需要保持连接本身。

如果 HTTP 协议只是用来访问静态文件,那不会有任何问题,但是如果你要为广大用户提供更好的服务,服务器就需要知道每个请求具体来自于哪个用户,比如你在逛淘宝的时候你只需要登录一次,当你发起一次购买请求,服务器就已经知道你登录过了,不会再让你进行登录。

所以 HTTP 协议需要占用浏览器的一小块存储,存储当前访问用户的一些 ”状态“,然后每次发起 HTTP 请求,请求中就会携带这些状态,从而让服务器知道你是谁。Cookie 出现的的意义就是为了解决这个问题,让无状态的 HTTP 协议拥有一小块记忆。

但是, Cookie 一经出现,就成了各大广告和购物网站窥探用户隐私的利器,他们使用第三方 Cookie 不断获取你的数据,那么什么第三方 Cookie 呢?

第三方 Cookie

如果是你正常的正在逛着天猫,天猫会把你的信息写入一些 Cookie 到 .tmall.com 这个域下,然而打开控制台你会看到,并不是所有 Cookie 都是  .tmall.com 这个域下的,里面还有很多其他域下的  Cookie ,这些所有非当前域下的 Cookie 都属于第三方 Cookie,虽然你可能从来没访问过这些域,但是他们已经悄悄的通过这些第三方 Cookie来标识你的信息,然后把你的个人信息发送过去了。

而 .tmall.com 这个域下的 Cookie 都属于第一方 Cookie,那么为什么还需要第三方 Cookie 呢?再打开 taobao.com,你会发现你已经不需要再登录了,因为淘宝、天猫都属于阿里旗下的产品,阿里为他们提供统一的登录服务,同时,你的登录信息也会存到这个统一登录服务的域下,所以存到这个域下的 Cookie 就成了三方 Cookie

我们再打开已经完全禁用了第三方 Cookie 的 Safari,发现只剩下 .tmall.com 这个域下的 Cookie 了。

这时你会发现即使你已经登录了天猫,再访问淘宝也还是需要登录的,你已经无法享用这样的功能了,而三方 Cookie 可不仅仅就这么点用途,在 Web 开发中,三方 Cookie 的应用非常之广,下面我们再来具体看几个应用场景:

三方Cookie的用途

前端日志打点

大多数 Web 站点都会引用一些第三方 SDK 来进行前端异常或性能监控,这些 SDK 会通过一些接口将监控到的信息上传到他们的服务器。一般它们都需要标识每个用户来方便排查问题或者统计 UV 数据,所以当你一此请求这个站点的时候,它们可能会在你的站点上 set 一个 Cookie,后续所有的日志上报请求都会带上这个 Cookie 。

由于一般这些第三方 SDK 都是用于监控的通用服务,它们肯定会拥有自己独立的域名,比如 log.com,它在你的域名 mysite.com 下种下的 Cookie 就属于第三方 Cookie

广告营销神器 - Facebook Pixel