User-Agent 是浏览器发送的自我描述,容易被改写且信息日渐简化;Client Hints 让网站按需请求设备、平台和版本等结构化信息。两者都只是环境观察的一部分,修改一个字段不会自动改变 Canvas、字体、网络或账号状态。
- 01UA 是自我描述字符串,容易被改写,也在逐步简化。
- 02Client Hints 提供更结构化的信息,网站可按需请求,支持范围因浏览器而异。
- 03只改 UA 不会改变 Canvas、字体、网络或账号状态,反而可能造成环境不一致。
01UA 是什么
User-Agent 是浏览器在 HTTP 请求中发送的字符串,通常包含浏览器名称、版本、渲染引擎和操作系统等信息。网站常用它做兼容性判断、统计或内容适配,但它并不是可信身份证明。
由于历史原因,UA 字符串越来越长且充满兼容性标记。浏览器厂商正在推进 UA 缩减与冻结,让字段更稳定、更少泄露细节。不同浏览器和版本的简化程度不同。
02Client Hints 是什么
Client Hints 通过一组 `Sec-CH-UA` 请求头提供结构化信息,例如品牌、主版本、平台和是否移动设备。部分高熵信息需要网站主动请求,浏览器再决定是否提供。
它的支持范围、默认字段和请求机制因浏览器而异,并非所有网站都使用。把 Client Hints 当作“更准确的 UA”并不完整,它仍然只是浏览器愿意公开的一部分信息。
03为什么伪装 UA 不够
环境一致性比单点伪装更重要。一个字段改对了,其他字段仍可能暴露差异;而刻意制造不可能存在的组合,也可能让页面行为异常。
- JavaScript 可以读取 navigator.userAgent、平台、语言等属性,可能与请求头不一致。
- 页面可以通过特性检测判断浏览器实际支持的能力。
- Canvas、字体、WebGL 和网络特征不会因为 UA 改变而改变。
- 版本与平台组合可能自相矛盾,例如声称是移动端却使用桌面字体和屏幕。
04对多账号工作的意义
如果业务需要模拟不同设备或地区,应选择真实存在、内部一致的配置组合,并在目标页面上验证语言、时区、屏幕、字体和功能是否匹配。不要为了通过某个检测页而随意拼接 UA。
同时要接受一个事实:平台是否限制账号,不由 UA 单独决定。账号资料、行为、网络和平台规则都在起作用。UA 只是环境描述的一层。
05检查清单
检查的目的不是追求“完美指纹”,而是发现明显的不一致和功能问题。对业务来说,能正常、稳定地完成授权工作,比一个漂亮的环境评分更重要。
- 记录请求头中的 UA 与 Sec-CH-UA 字段。
- 记录页面 JS 可见的平台、语言、时区和屏幕信息。
- 检查 UA 声称的平台与字体、屏幕、功能是否矛盾。
- 在目标页面测试核心功能,而不是只看检测页。
- 保存浏览器版本与测试时间,便于复测。
关于这篇指南,常被问到的。
Q改 UA 能骗过网站吗?
只能改变部分自我描述,不能改变实际渲染、字体、Canvas 和网络。网站还可以通过特性检测判断真实能力。
QClient Hints 会取代 UA 吗?
它提供了更结构化的替代方案,但 UA 仍会在一段时间内存在,且不同浏览器支持程度不同。两者可能同时被使用。
QUA 应该和浏览器版本完全一致吗?
通常应保持内部一致,避免声称的平台、版本与实际能力矛盾。刻意伪造版本可能造成页面功能异常。
参考资料
本文提供通用工作方法与产品边界说明。具体平台规则、权限、界面与可用功能以目标平台当前说明和实际版本为准。示例编号、金额与界面均为说明用途,不代表客户数据或效果承诺。