浏览器指纹开发教程

浏览器指纹包含哪些参数

系统梳理浏览器指纹的全部组成参数,分为基础环境、渲染特征、硬件信息、网络特征、行为特征五大类,并说明每类参数的采集方式和防关联意义。


浏览器指纹包含哪些参数

浏览器指纹是网站用来识别用户设备的一组特征集合。平台通过比对这些参数,判断多个账号是否来自同一设备或同一运营者。理解指纹的完整组成,是做好防关联的基础。

一、基础环境参数

这些参数可以直接通过 JavaScript 的 navigatorscreen 对象获取:

参数 说明 防关联意义
User-Agent 浏览器类型、版本、操作系统 高,是最基础的识别字段
屏幕分辨率 screen.width / screen.height 高,标识显示器规格
可用屏幕尺寸 screen.availWidth / availHeight 中,排除任务栏后的可用区域
色彩深度 screen.colorDepth 中,通常为 24 或 30
时区 Intl.DateTimeFormat().timeZone 高,标识用户地理位置
系统语言 navigator.language / languages 中,标识用户语言偏好
平台 navigator.platform 中,Win32 / MacIntel / Linux x86_64
Cookie 启用状态 navigator.cookieEnabled
在线状态 navigator.onLine
触摸支持 navigator.maxTouchPoints 中,区分触控/非触控设备
设备内存 navigator.deviceMemory 中,通常为 2/4/8
CPU 核心数 navigator.hardwareConcurrency 中,通常为 2/4/8/16

二、渲染特征参数

这些参数通过 Canvas 和 WebGL 的渲染差异生成,唯一性极高。

Canvas 指纹

  • 绘制文本的像素级渲染差异
  • 不同显卡、驱动、浏览器会产生不同的抗锯齿效果
  • 同一设备不同浏览器的结果也可能不同

WebGL 指纹

  • GPU 型号(通过 UNMASKED_VENDOR_WEBGL / UNMASKED_RENDERER_WEBGL
  • WebGL 参数:最大纹理尺寸、最大顶点属性数、精度格式
  • 支持的扩展列表

三、硬件信息参数

参数 采集方式 防关联意义
安装字体列表 Canvas 测量文本宽度 高,每台电脑的字体组合几乎唯一
WebAudio 指纹 AudioContext 处理差异 中,不同声卡/驱动产生不同结果
Client Rects getClientRects 测量差异 中,与字体和渲染相关
蓝牙信息 navigator.bluetooth 低,需用户授权
电池状态 navigator.getBattery() 低,现代浏览器已限制

四、网络特征参数

参数 说明 防关联意义
IP 地址 网络出口地址 极高,平台最核心的关联维度
WebRTC 本地 IP STUN 协议可能泄漏本地 IP 高,需特别注意
DNS 解析方式 是否通过代理解析 中,可能导致 DNS 泄漏
TLS / JA3 / JA4 指纹 TLS 握手特征 高,可标识浏览器和网络栈

五、行为特征参数

行为特征通常由服务端记录,JavaScript 端也能采集部分:

  • 鼠标移动轨迹(速度、加速度、点击位置)
  • 键盘输入节奏(按键间隔、误触率)
  • 页面滚动模式(滚动速度、停顿位置)
  • 触控手势(移动端滑动方向、力度)

参数重要性分级

极高:IP 地址
高:User-Agent、时区、Canvas 指纹、WebGL GPU 信息、字体列表、WebRTC 本地 IP
中:屏幕分辨率、语言、平台、触摸支持、CPU 核心数、内存、TLS 指纹
低:Cookie 状态、在线状态、蓝牙、电池

风险边界

  • 参数修改需一致:如果修改了时区为美国但语言保持中文,参数之间的不一致反而会被标记为异常
  • 行为特征难以伪造:鼠标轨迹和输入节奏是长期形成的习惯,短期难以改变
  • 服务端交叉验证:平台通常同时检测多个维度,单一参数修改不足以避免关联
  • 指纹参数≠唯一标识:高唯一性参数组合在一起才具有强识别能力

与 EasyBR 的关系

EasyBR 指纹浏览器支持修改上述大部分参数:

  • 基础环境:User-Agent、时区、语言、屏幕参数
  • 渲染特征:Canvas、WebGL、字体列表
  • 硬件信息:CPU 核心数、内存大小
  • 网络特征:通过代理配置实现 IP 隔离,禁用 WebRTC 防止本地 IP 泄漏

了解 JS 如何获取这些参数 | 查看 EasyBR 指纹隔离原理


FAQ

Q: 修改哪些指纹参数对防关联最有效?
A: 优先级排序:IP 地址 > Canvas/WebGL 指纹 > User-Agent > 时区/语言 > 字体列表。IP 地址是平台最核心也最敏感的维度。

Q: 为什么 Canvas 指纹这么重要?
A: 因为 Canvas 渲染结果受显卡驱动、操作系统、浏览器版本多重因素影响,同一硬件在不同浏览器下的结果差异极大,因此唯一性非常高。

Q: 移动端指纹和桌面端有什么区别?
A: 移动端通常缺少部分 WebGL 扩展,字体列表更有限,触摸参数(maxTouchPoints)通常为 5,整体指纹熵值略低于桌面端但仍然足够唯一。

Q: 指纹参数修改后需要保持一致吗?
A: 是的。时区、语言、IP 地理位置应当逻辑一致。例如使用美国 IP 时,时区应设为美国时区,语言可设为 en-US。

Q: 行为特征能被指纹浏览器修改吗?
A: 不能。行为特征由真人操作产生,指纹浏览器无法模拟。建议通过自动化工具(如 EasyBR RPA)或培养不同的操作习惯来降低风险。


延伸阅读


文章作者: easybr官方
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 easybr官方 !
Next Step

先试 EasyBR,再决定是否扩团队或做更深的定制项目

标准版适合先验证多账号环境、代理和数据迁移;如果你需要更深的业务能力,我们也支持浏览器外包、Chromium 定制、贴牌浏览器与 Android 指纹浏览器开发。

下载免费版 联系团队 查看技术服务
 上一篇
JS 获取浏览器指纹 JS 获取浏览器指纹
介绍如何使用原生 JavaScript 获取浏览器指纹参数,包括 User-Agent、屏幕分辨率、时区、Canvas 指纹、WebGL 指纹等,并提供可运行的代码示例与风险边界说明。
下一篇 
Canvas 指纹怎么生成 Canvas 指纹怎么生成
详解 Canvas 指纹的生成机制,包括绘制原理、哈希提取方法、不同设备产生差异的根本原因,以及如何在指纹浏览器中修改 Canvas 指纹。
  目录