# 浏览器指纹识别

浏览器指纹识别会根据客户端暴露的属性组合来识别它，包括用户代理、屏幕尺寸、字体、Canvas 与 WebGL 渲染、时区、语言、已安装的功能，以及在传输层上 TLS 和 HTTP/2 协议栈的确切协商方式。这种组合通常具有唯一性，因此网站能够跨多个 IP 地址识别出同一套自动化程序。代理会更改 IP，却不会改变指纹。


## 两类指纹

- **浏览器端**：JavaScript 能够读取的信息。除非另行配置，否则无头浏览器和自动化框架会泄露具有辨识度的值。
- **网络端**：TLS ClientHello（密码套件顺序、扩展）和 HTTP/2 设置能够识别客户端库。无论发送什么用户代理，Python 脚本都不会呈现出 Chrome 的特征。


## 与出口保持一致

检测系统会交叉核对指纹与 IP：柏林的住宅代理出口若配有美国时区和英语区域设置，就会自相矛盾。请让语言、时区以及浏览器配置与目标国家/地区保持一致。


## 一个指纹对应一个会话

同一指纹在一分钟内出现在一百个轮换 IP 上，比始终使用一个 IP 更像机器人。请让 IP 轮换与指纹多样性相匹配，或把一个粘性会话固定到一套配置。


## 在 ProxShift 中的工作方式

ProxShift 在这方面刻意保持中立：网关会原样转发你发送的 TLS 和 HTTP，且绝不会终止 TLS，因此目标网站看到的是你的客户端自身指纹，只是其背后使用了住宅代理、专用 ISP、数据中心代理或移动代理地址。

来源：https://proxshift.com/zh/glossary/browser-fingerprinting
