2026-07-15 08:51:345799
页面上的每个信号都来自有据可查的浏览器 API,而非指纹数据库。浏览器标识在旧路径下从 navigator.userAgent 读取,在 Chromium 上则从 navigator.userAgentData(User-Agent Client Hints)读取,后者通过 getHighEntropyValues(['platform', 'platformVersion', 'model']) 返回结构化的高熵对象。硬件指标包括 navigator.hardwareConcurrency(逻辑 CPU 核心数)和 navigator.deviceMemory,后者被有意舍入为 0.25、0.5、1、2、4 或 8 GB 之一,以限制指纹熵。
显示特性来自 screen.width、screen.height、screen.availWidth、screen.colorDepth、window.devicePixelRatio 以及 window.matchMedia('(orientation: portrait)') / matchMedia('(prefers-color-scheme: dark)')。GPU 信息需要 WebGL 上下文:通过 canvas.getContext('webgl') 创建后,页面调用 getExtension('WEBGL_debug_renderer_info') 并读取 UNMASKED_VENDOR_WEBGL 和 UNMASKED_RENDERER_WEBGL。许多浏览器,尤其是 Safari 和 Firefox 的隐私模式,会将此扩展屏蔽为通用字符串以防止指纹追踪。
网络详情使用 Network Information API:navigator.connection.effectiveType 返回 '4g' / '3g' / 'slow-2g' 作为粗略分类,downlink 以 Mbps 为单位,rtt 以毫秒为单位。电池、地理位置、剪贴板和通知权限都需要用户明确授权,或受 Permissions Policy 限制。WebAssembly、WebGPU、Service Worker、IndexedDB 等能力探测通过对相应全局对象进行特性检测实现(typeof WebAssembly !== 'undefined'、'serviceWorker' in navigator)。所有检查在本地标签页中同步或以 Promise 方式运行,不会向服务器发送任何数据。
UA 检测:navigator.userAgent(旧版)加上 navigator.userAgentData.getHighEntropyValues()(Chromium 90+ 的 UA-CH)硬件:navigator.hardwareConcurrency(逻辑核心数)和 navigator.deviceMemory(舍入为 0.25/0.5/1/2/4/8 GB 以防指纹追踪)显示:screen.width/height、screen.colorDepth、window.devicePixelRatio、matchMedia('(prefers-color-scheme: dark)')GPU:WebGL getExtension('WEBGL_debug_renderer_info') 然后 getParameter(UNMASKED_RENDERER_WEBGL);Safari 通常返回通用字符串网络:navigator.connection.effectiveType('4g'/'3g'/'slow-2g')、downlink(Mbps)、rtt(ms);Network Information API能力检测:特性检测(typeof WebAssembly !== 'undefined'、'serviceWorker' in navigator、navigator.gpu 用于 WebGPU)权限:电池、地理位置、剪贴板、通知均由 Permissions API 或用户提示控制;授权前许多字段显示 '-'