它是什么
User-Agent Client Hints 是 Chromium 从冻结的 UA 字符串里搬出来的那些字段:平台与平台版本、CPU 架构与位数、完整浏览器版本、设备型号,以及浏览器是否自称移动端。Firefox 与 Safari 没有实现它——这本身也是一个数据点。
网站怎么读
const hints = await navigator.userAgentData?.getHighEntropyValues([
'platform', 'platformVersion', 'architecture', 'bitness', 'uaFullVersion',
]);
// headers: Sec-CH-UA, Sec-CH-UA-Mobile, Sec-CH-UA-Platform (+ high-entropy after Accept-CH)三个低熵字段(brands、mobile、platform)随每个请求以请求头发送。高熵字段按需给出:脚本调用 getHighEntropyValues(),或服务端用 Accept-CH 请求头声明后,在下一次请求中收到。
为什么它能认出你
这些字段说出了精简版 UA 不再说的事:你用的是 Windows 11 而不是“Windows NT 10.0”,是 ARM 而不是 x86,是 152.0.7977.76 而不是 152.0.0.0。它们也是其他所有“系统形状”信号的比对基准。
风控怎么用它
三个比对几乎零成本:请求头副本对 JavaScript 副本,platform 对 UA 字符串,architecture 对浮点行为暴露的真实 CPU。该有却没有的 hints 同样说明问题——自称 Chrome 却没有 userAgentData。
常见翻车点
改了 UA 字符串却忘了 hints;Apple 芯片的 GPU 配一个“x86”架构;一个 Windows 从未发布过的 platformVersion;请求头和脚本调用之间会变的 hints。
Mango 正在接受候补登记。以下介绍首发能力,客户端将在发放邀请后开放使用。
Mango Browser 如何处理
自定义Mango 的 Chromium 环境让 Client Hints 与 User-Agent 使用同一套环境身份。Firefox 环境保留对应内核的行为,不应将 Firefox 缺少 User-Agent Client Hints 判定为检测失败。
检测你的值
跳转到你的检测结果中的这一项。