学习目标
阅读本文后,您将能够:
- 说出 Cookie 和浏览器指纹分别存在哪里
- 判断清 Cookie 会改变什么、不会改变什么
- 理解网站可以同时使用这两种方式
Cookie 是什么
Cookie 是网站存进浏览器、下次访问再读出来的数据。网站不写,浏览器里就没有这份 Cookie。
| 它依赖什么 | 结果是 |
|---|---|
| 网站写入 | 浏览器按网站的要求保存一段数据 |
| 下次请求 | 浏览器把这段数据再带给同一网站 |
| 用户删除 | 这段已保存的数据就没了 |
登录状态、购物车、统计标识,很多都放在 Cookie 或同类存储里。删掉之后,网站就读不回这一份了。
浏览器指纹是什么
浏览器指纹是网站把打开页面时观察到的环境特征组合起来的结果,不是浏览器里单独存着的一个文件。
| 它从哪来 | 例如 |
|---|---|
| 请求自带 | IP、User-Agent、语言 |
| 脚本读取 | 屏幕、时区、平台信息 |
| 渲染和测试 | Canvas、WebGL、功能支持 |
这些特征在您打开页面时就已经能被观察到。网站不必先往您的浏览器里写入一份「指纹文件」。
两者差在哪里
Cookie 靠网站先存进去、再读出来。浏览器指纹靠的是环境本身暴露出来的特征。
| Cookie | 浏览器指纹 | |
|---|---|---|
| 存在哪里 | 网站写入浏览器的数据 | 当前浏览器和环境的特征 |
| 没有写入时 | 网站读不到这一份 | 打开页面仍能观察到特征 |
| 用户删除后 | 这一份数据就没了 | 屏幕、时区、渲染结果通常还在 |
| 能否一起用 | 可以 | 可以 |
为什么要分开看?
很多人把「清 Cookie」理解成换了一个新环境。Cookie 清掉之后,登录状态和网站写入的标识就没了,浏览器、屏幕、时区和渲染方式往往没变。网站仍可能从这些特征里看出,这还是相近的一套环境。
清掉一种,另一种还在
- 清 Cookie 去掉的是网站存过的数据,不是整套浏览器环境。
- 没有 Cookie,网站仍可能通过请求、脚本和渲染看到环境特征。
- 有 Cookie,也不表示网站只靠 Cookie 认出用户。两种方式可以同时用。
- 环境特征相同,不能单独证明是同一个人。
- 环境特征不同,也不能单独证明一定是两个用户。
常见问题
无痕模式是不是就没有 Cookie,也没有指纹?
无痕会少保存历史和 Cookie。屏幕、时区、语言和渲染结果在无痕里通常还在。
浏览器指纹是不是一种特殊的 Cookie?
不是。Cookie 是存进去的数据。指纹是对当前环境特征的观察和组合,不是同一份存储。
把 Cookie 关掉,网站就认不出这个浏览器了吗?
网站读不回自己写过的那份数据。请求和脚本仍可能拿到浏览器与环境信息。