返回博客
指纹

BotBrowser Navigator 属性保护:一致的浏览器身份

BotBrowser 如何控制 navigator 属性、User-Agent、Client Hints 和硬件值,保持跨会话的一致浏览器身份。

隐私风险

navigator 对象向页面上的每个脚本暴露硬件详情、操作系统信息、浏览器版本和语言偏好。这些属性可以被组合为追踪信号。BotBrowser 通过单一指纹配置文件让你完全控制所有 navigator 值。

基于配置文件的 Navigator 控制

每个 BotBrowser 配置文件定义了一套完整且内部一致的 navigator 属性。加载配置文件会在任何页面代码运行之前应用所有值:

chrome --bot-profile="/path/to/profile.enc" \
       --user-data-dir="$(mktemp -d)"

这控制了 navigator.userAgentnavigator.platformnavigator.hardwareConcurrencynavigator.deviceMemorynavigator.languages 以及所有对应的 HTTP 头,全部来自同一数据源。

浏览器品牌配置

通过单个标志切换整个浏览器品牌身份:

chrome --bot-profile="/path/to/profile.enc" \
       --bot-config-browser-brand=edge

这会同时更新 User-Agent 字符串、navigator.userAgentData.brandsSec-CH-UA 头和厂商特定属性。

语言控制

覆盖语言设置以匹配任何区域:

chrome --bot-profile="/path/to/profile.enc" \
       --bot-config-languages="fr-FR,fr,en-US,en"

这会更新 navigator.languagenavigator.languagesAccept-Language HTTP 头。

Client Hints 一致性

BotBrowser 在引擎层面控制 User-Agent Client Hints。JavaScript API (navigator.userAgentData.getHighEntropyValues()) 和 HTTP 头 (Sec-CH-UA, Sec-CH-UA-Platform) 都返回与加载配置文件匹配的值。

验证

启动 BotBrowser 并加载配置文件后,验证一致性:

console.log('UA:', navigator.userAgent);
console.log('Platform:', navigator.platform);
console.log('Cores:', navigator.hardwareConcurrency);
console.log('Memory:', navigator.deviceMemory);
console.log('Languages:', navigator.languages);

const ua = await navigator.userAgentData.getHighEntropyValues([
  'platform', 'fullVersionList'
]);
console.log('CH Platform:', ua.platform);
console.log('CH Versions:', ua.fullVersionList);

所有值应与加载的配置文件一致。

开始使用

  1. GitHub 下载 BotBrowser
  2. 使用 --bot-profile 加载指纹配置文件
  3. 使用 --bot-config-browser-brand 控制浏览器身份
  4. 使用 CreepJS 或浏览器开发者工具验证
#navigator#fingerprinting#privacy#user-agent#client-hints