基础概念 / 基础概念

User-Agent 与 Client Hints:浏览器如何自我介绍

UA 字符串正在被冻结和简化,Client Hints 提供结构化信息。理解网站能请求什么,以及为什么伪装 UA 不等于改变环境。

核对边界 · 标注来源 · 不承诺平台结果
核心结论

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 声称的平台与字体、屏幕、功能是否矛盾。
  • 在目标页面测试核心功能,而不是只看检测页。
  • 保存浏览器版本与测试时间,便于复测。
FAQ / 常见问题

关于这篇指南,常被问到的。

Q改 UA 能骗过网站吗?

只能改变部分自我描述,不能改变实际渲染、字体、Canvas 和网络。网站还可以通过特性检测判断真实能力。

QClient Hints 会取代 UA 吗?

它提供了更结构化的替代方案,但 UA 仍会在一段时间内存在,且不同浏览器支持程度不同。两者可能同时被使用。

QUA 应该和浏览器版本完全一致吗?

通常应保持内部一致,避免声称的平台、版本与实际能力矛盾。刻意伪造版本可能造成页面功能异常。

SOURCES / 资料来源

参考资料

编辑说明

本文提供通用工作方法与产品边界说明。具体平台规则、权限、界面与可用功能以目标平台当前说明和实际版本为准。示例编号、金额与界面均为说明用途,不代表客户数据或效果承诺。

上一篇WebRTC 会泄露真实 IP 吗?先分清三类地址 下一篇指纹浏览器能做什么、不能做什么:一张边界清单

MATRIXFLOW / PRODUCT

让环境管理,
回到工作本身。

MatrixFlow 把多账号浏览器环境、代理与 AI 助手放在同一个工作台。具体能力与支持范围以产品当前版本为准。

了解 MatrixFlow