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.userAgent、navigator.platform、navigator.hardwareConcurrency、navigator.deviceMemory、navigator.languages 以及所有对应的 HTTP 头,全部来自同一数据源。
浏览器品牌配置
通过单个标志切换整个浏览器品牌身份:
chrome --bot-profile="/path/to/profile.enc" \
--bot-config-browser-brand=edge
这会同时更新 User-Agent 字符串、navigator.userAgentData.brands、Sec-CH-UA 头和厂商特定属性。
语言控制
覆盖语言设置以匹配任何区域:
chrome --bot-profile="/path/to/profile.enc" \
--bot-config-languages="fr-FR,fr,en-US,en"
这会更新 navigator.language、navigator.languages 和 Accept-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);
所有值应与加载的配置文件一致。