什么是 Cookie?
Cookie 是网站存储在浏览器中的小型文本数据。它由 Netscape 的一位工程师于 1994 年发明,此后一直是 Web 的基础技术。
Cookie 的最初目的是为无状态的 HTTP 协议赋予"记忆"。它在维持登录状态、保存购物车、记住语言设置等方面发挥着重要作用,支撑着网站的便利性。Cookie 的保存与管理由浏览器负责,因此 Cookie 的处理方式会随浏览器的种类和设置而不同。
第一方 Cookie 与第三方 Cookie
第一方 Cookie
这些是由你正在访问的网站自身设置的 Cookie。用于维持登录状态、保存用户设置和管理购物车等。它们通常是有用的,屏蔽后网站可能无法正常运行。
第三方 Cookie
这些是由你正在访问的网站以外的域名设置的 Cookie。主要被广告网络和分析服务用于跨多个网站追踪用户行为。从隐私角度来看,最受诟病的正是这类第三方 Cookie。
广告追踪的工作原理
广告追踪通常按以下流程进行。
- 你访问网站 A,嵌入该站的广告网络脚本设置了一个第三方 Cookie
- 接着你访问网站 B,同一广告网络的脚本读取了该 Cookie
- 广告网络由此掌握了你访问过网站 A 和网站 B 这一事实
- 随着这类信息不断积累,基于兴趣与关注点的用户画像被构建出来
- 再根据该画像投放个性化广告
这个过程在用户毫不知情的情况下,由众多广告网络并行推进。其结果就是无论打开哪个网站都显示相同广告这一现象。
Cookie 之外的追踪技术
即使屏蔽了 Cookie,仍有可能被其他技术追踪。
浏览器指纹
一种组合浏览器和设备的设置信息来识别用户的技术。与 Cookie 不同,它不在设备上保存数据,因此难以删除或屏蔽。详情请参阅浏览器指纹的解说文章。
Local Storage 和 IndexedDB
这些技术可以在浏览器中保存比 Cookie 更大容量的数据。即使删除了 Cookie,追踪 ID 也可能仍残留在这些存储中。
ETag 和缓存追踪
这是滥用 HTTP 缓存机制来识别用户的手法。服务器返回一个唯一的 ETag,并在下次访问时读取该 ETag,从而实现追踪。
像素追踪
这是把 1×1 像素的透明图片嵌入网页或电子邮件,再从其加载请求中追踪用户行为的手法。
如何管理 Cookie
在浏览器设置中屏蔽第三方 Cookie
主流浏览器都提供了屏蔽第三方 Cookie 的设置。Safari 于 2020 年 3 月起全面屏蔽第三方 Cookie,Brave 也默认屏蔽。Firefox 从 2022 年起默认启用 Total Cookie Protection,它并非一律拒绝 Cookie,而是按所浏览的网站分隔保存位置,使其他网站无法读取。Chrome 淘汰第三方 Cookie 的方针已于 2024 年撤回,并在 2025 年 4 月确定予以保留,因此默认仍然允许,但可以在设置中启用屏蔽。
设置 Cookie 自动删除
把浏览器设置为关闭时自动删除 Cookie,就能防止长期追踪。不过每次都需要重新登录,与便利性之间的取舍无法避免。
使用隐私扩展
- uBlock Origin:全面拦截广告和追踪器。随着 Chrome 的扩展规范迁移到 Manifest V3,面向 Chrome 另外提供了功能受限的 uBlock Origin Lite
- Privacy Badger:依据 EFF 公开的追踪器名单拦截追踪。边浏览边在终端侧学习的功能,因担心学习结果本身会成为识别材料,已于 2020 年 10 月默认关闭
- Cookie AutoDelete:关闭标签页时自动删除 Cookie
关于包含 Cookie 对策在内的在线隐私保护全貌,也请参阅保护隐私的实践指南。
使用隐私浏览模式
在隐私浏览 (无痕) 模式下,Cookie 会在浏览器关闭时自动删除。但它不会加密通信内容,也不会隐藏 IP 地址,因此无法获得完全的匿名性。配合 HTTPS/TLS 的通信加密可以保护通信内容,但 Do Not Track 只是一种接收方没有义务遵守的"请求",多数广告网络都会忽略,因此难以指望它能阻止追踪。
用 IP 确认酱检查 Cookie 状态
在 IP 确认酱的首页,可以查看当前的 Cookie 信息和安全评分。Cookie 数量较多会反映在安全评分中,因此请养成定期检查和清理的习惯。
相关术语
常见问题
把 Cookie 全部拒绝也没关系吗?
如果拒绝第一方 Cookie,就无法保持登录状态和购物车内容,许多网站将无法正常使用。只拦截第三方 Cookie 才是实用的做法。
Cookie 和缓存有什么区别?
Cookie 是网站保存在浏览器里的小块数据,用于记住登录信息和偏好设置。缓存则是临时保存图片、CSS 等文件,用来加快页面加载。