Protection des proprietes Navigator par BotBrowser : identite de navigateur coherente
Comment BotBrowser controle les proprietes navigator, User-Agent, Client Hints et valeurs materielles pour maintenir une identite de navigateur coherente entre les sessions.
Le risque pour la vie privee
L'objet navigator expose les details materiels, les informations du systeme d'exploitation, la version du navigateur et les preferences linguistiques a chaque script de la page. Ces proprietes peuvent etre combinees comme signal de pistage. BotBrowser vous donne un controle total sur toutes les valeurs navigator depuis un seul profil d'empreinte.
Controle Navigator base sur le profil
Chaque profil BotBrowser definit un ensemble complet et internement coherent de proprietes navigator. Le chargement d'un profil applique toutes les valeurs avant l'execution de tout code de page :
chrome --bot-profile="/path/to/profile.enc" \
--user-data-dir="$(mktemp -d)"
Cela controle navigator.userAgent, navigator.platform, navigator.hardwareConcurrency, navigator.deviceMemory, navigator.languages et tous les en-tetes HTTP correspondants depuis une source unique.
Configuration de la marque du navigateur
Changez toute l'identite de marque du navigateur avec un seul flag :
chrome --bot-profile="/path/to/profile.enc" \
--bot-config-browser-brand=edge
Cela met a jour simultanement la chaine User-Agent, navigator.userAgentData.brands, les en-tetes Sec-CH-UA et les proprietes specifiques au fournisseur.
Controle linguistique
Remplacez les parametres de langue pour correspondre a toute region :
chrome --bot-profile="/path/to/profile.enc" \
--bot-config-languages="fr-FR,fr,en-US,en"
Cela met a jour navigator.language, navigator.languages et l'en-tete HTTP Accept-Language.
Coherence des Client Hints
BotBrowser controle les User-Agent Client Hints au niveau du moteur. L'API JavaScript (navigator.userAgentData.getHighEntropyValues()) et les en-tetes HTTP (Sec-CH-UA, Sec-CH-UA-Platform) retournent des valeurs correspondant au profil charge.
Verification
Apres avoir lance BotBrowser avec un profil, verifiez la coherence :
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);
Toutes les valeurs doivent correspondre au profil charge.