ClaudeSignal

浏览器指纹地区检测

浏览器指纹会暴露哪些地区信号?

浏览器会通过很多看似无害的小信号暴露地区上下文。ClaudeSignal 把这些信号集中展示,并解释它们如何影响地区画像。

直接答案

常见地区信号包括系统时区、浏览器语言、Intl 区域、系统字体、WebGL/GPU 渲染器、数字格式、日期格式、键盘布局、屏幕 DPI 和 Emoji 渲染。这些信号单独看都不强,但组合起来会形成一个非常明确的地区画像。

这些信号不等于真实身份或真实位置,但会让一个浏览器环境看起来更像某个国家或语言区域。ClaudeSignal 将这 10 项客户端信号加上 4 项服务端信号,加权计算出 0-100 的风险分。

各信号检测原理

系统时区(权重 25):通过 Intl.DateTimeFormat().resolvedOptions().timeZone 读取 IANA 时区名称。这是最强的单一客户端信号,因为时区设置直接反映操作系统安装时的区域选择,用户很少会主动修改它。

浏览器语言(权重 15):通过 navigator.languagenavigator.languages 读取。浏览器语言设置通常在安装操作系统时确定,中国用户通常设置为 zh-CN,美国用户设置为 en-US。

地区字体(权重 12):通过 Canvas API 测量特定字符的渲染宽度来推断系统安装了哪些字体。例如,如果系统安装了 PingFang SC、Noto Sans CJK、Microsoft YaHei 等中文字体,渲染宽度会与英文系统明显不同。

Intl 区域(权重 8):通过 Intl.DateTimeFormat().resolvedOptions().locale 读取。这个值反映浏览器的区域偏好设置。

WebGL/GPU 渲染器(权重 8):通过 WEBGL_debug_renderer_info 扩展读取 GPU 型号。虽然 GPU 本身不直接暴露地区,但某些 GPU 型号在特定地区的市场占有率更高。

数字格式(权重 5):通过 Intl.NumberFormat 检测小数点和千位分隔符的使用习惯。中国使用 1,234.56 格式,德国使用 1.234,56 格式。

日期格式(权重 5):通过 Intl.DateTimeFormat 检测日期排列顺序。中国和日本使用年月日(YMD),美国使用月日年(MDY),欧洲大部分地区使用日月年(DMY)。

键盘布局(权重 4):通过 Keyboard API 检测键盘布局类型。QWERTY 是最常见的布局,但德国使用 QWERTZ,法国使用 AZERTY。

屏幕 DPI(权重 3):通过 window.devicePixelRatio 检测。高 DPI 设备(如 Retina 屏幕)在某些地区的普及率更高。

Emoji 渲染(权重 2):通过测量 Emoji 字符的 Canvas 渲染宽度来推断 Emoji 样式。不同操作系统和地区的 Emoji 渲染方式不同。

为什么 IP 不是全部

IP 归属地很直接,但浏览器画像可能和 IP 不一致。比如代理节点在美国,但本地时区、语言、字体和格式仍然明显指向另一个地区。

这种不一致正是 ClaudeSignal 的核心关注点。传统的 IP 检测只看网络层,而 ClaudeSignal 将客户端指纹与 IP 进行交叉对比,发现隐藏的地区暴露点。如果 IP 说你在纽约,但时区说你在上海,浏览器语言说你是中文用户,那么这个"不一致"本身就是有价值的信息。

指纹信号的稳定性

不同的指纹信号有不同的稳定性。时区和语言设置几乎不会变化,属于"硬信号"。字体列表可能因为安装新软件而改变,属于"软信号"。屏幕 DPI 取决于硬件,完全无法修改。GPU 型号也是硬件绑定的,除非更换设备。

这种稳定性差异意味着,即使用户调整某些信号,其他信号仍然可能暴露真实环境。ClaudeSignal 的加权算法考虑了这种差异,给更稳定的信号分配更高的权重。

检查你的环境

运行 ClaudeSignal 检测器,查看你的浏览器暴露了哪些地区信号。

或阅读: