全部指纹
时区语言

语言

三处语言声明必须描述同一个人,并且应与 IP 所在国家相称。

读取方式navigator.languagesAccept-Language headerIntl locale

它是什么

浏览器会把你偏好的语言宣布三次:每个请求上的 Accept-Language 请求头、给脚本看的 navigator.language / navigator.languages,以及 Intl 格式化日期和数字时隐含使用的区域。

网站怎么读

navigator.language      // "zh-CN"
navigator.languages     // ["zh-CN", "zh", "en"]
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Intl.DateTimeFormat().resolvedOptions().locale   // "zh-CN"

请求头按偏好排序并带权重;navigator.languages 携带同一份列表;Intl.DateTimeFormat().resolvedOptions().locale 则暴露引擎实际选中的默认区域。

为什么它能认出你

语言列表是件小事,却很个人——确切的集合与顺序(zh-CN、zh、en-US、en)能把访客缩到出乎意料的小范围,而且它跨站点、跨会话保持不变。

风控怎么用它

首先三份副本互相比对:请求头说一套、navigator 说另一套,只会发生在被修改过的浏览器里。然后列表与 IP 比对:德国住宅 IP 上一个只有越南语的浏览器不是不可能,但要扣分。

常见翻车点

用扩展改了 navigator.language,而 Accept-Language 请求头仍带着真实列表;为代理所在国设了时区,语言却还是宿主机的;一份该国没人会有的语言列表。

Mango 正在接受候补登记。以下介绍首发能力,客户端将在发放邀请后开放使用。

Mango Browser 如何处理

自定义

默认跟随出口 IP(如新加坡代理对应 en-SG)或固定列表;请求头、navigator 与 Intl 一并设置。

检测你的值

跳转到你的检测结果中的这一项。

查看我的结果

相关指纹

用到这个信号的文章