Proteccion de propiedades Navigator en BotBrowser: Identidad de navegador consistente
Como BotBrowser controla las propiedades navigator, User-Agent, Client Hints y valores de hardware para mantener una identidad de navegador consistente entre sesiones.
El riesgo de privacidad
El objeto navigator expone detalles de hardware, informacion del sistema operativo, version del navegador y preferencias de idioma a cada script en la pagina. Estas propiedades pueden combinarse como senal de rastreo. BotBrowser te da control total sobre todos los valores navigator desde un unico perfil de huella digital.
Control de Navigator basado en perfil
Cada perfil de BotBrowser define un conjunto completo e internamente consistente de propiedades navigator. Cargar un perfil aplica todos los valores antes de que se ejecute cualquier codigo de pagina:
chrome --bot-profile="/path/to/profile.enc" \
--user-data-dir="$(mktemp -d)"
Esto controla navigator.userAgent, navigator.platform, navigator.hardwareConcurrency, navigator.deviceMemory, navigator.languages y todas las cabeceras HTTP correspondientes desde una unica fuente.
Configuracion de marca del navegador
Cambia toda la identidad de marca del navegador con un solo flag:
chrome --bot-profile="/path/to/profile.enc" \
--bot-config-browser-brand=edge
Esto actualiza la cadena User-Agent, navigator.userAgentData.brands, cabeceras Sec-CH-UA y propiedades especificas del proveedor simultaneamente.
Control de idioma
Sobreescribe la configuracion de idioma para coincidir con cualquier region:
chrome --bot-profile="/path/to/profile.enc" \
--bot-config-languages="fr-FR,fr,en-US,en"
Esto actualiza navigator.language, navigator.languages y la cabecera HTTP Accept-Language.
Consistencia de Client Hints
BotBrowser controla User-Agent Client Hints a nivel de motor. Tanto la API JavaScript (navigator.userAgentData.getHighEntropyValues()) como las cabeceras HTTP (Sec-CH-UA, Sec-CH-UA-Platform) devuelven valores que coinciden con el perfil cargado.
Verificacion
Despues de lanzar BotBrowser con un perfil, verifica la consistencia:
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);
Todos los valores deben coincidir con el perfil cargado.