Retour au Blog
Empreinte

Protection ecran et fenetre par BotBrowser : identite d'affichage coherente

Comment BotBrowser controle les dimensions d'ecran, le pixel ratio et les proprietes de fenetre pour des signaux d'empreinte d'affichage coherents.

Le risque pour la vie privee

Les proprietes d'affichage comme la resolution, la profondeur de couleur, le pixel ratio et les dimensions de fenetre sont accessibles a tout script sans permissions. Ces valeurs peuvent contribuer a un signal de pistage. BotBrowser controle toutes les proprietes d'affichage au niveau du moteur via le profil d'empreinte.

Configuration d'ecran basee sur le profil

Chaque profil contient un ensemble complet de proprietes d'affichage. Le chargement d'un profil les applique de maniere coherente :

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

Les media queries CSS, les proprietes JavaScript screen et les contraintes de dimensions de fenetre correspondent au profil.

Configuration du framework d'automatisation

Lors de l'utilisation de Playwright ou Puppeteer, desactivez le viewport par defaut pour que les dimensions du profil prennent effet.

Puppeteer :

const browser = await puppeteer.launch({
  executablePath: '/path/to/botbrowser/chrome',
  args: ['--bot-profile=/path/to/profile.enc'],
  defaultViewport: null
});

Playwright :

const browser = await chromium.launch({
  executablePath: '/path/to/botbrowser/chrome',
  args: ['--bot-profile=/path/to/profile.enc']
});

const context = await browser.newContext({
  viewport: null
});

Sans defaultViewport: null (Puppeteer) ou viewport: null (Playwright), le framework remplace les dimensions d'ecran du profil.

Ce que controle le profil

Les profils BotBrowser gerent toutes les valeurs d'affichage :

  • screen.width, screen.height, screen.availWidth, screen.availHeight
  • screen.colorDepth et screen.pixelDepth
  • window.devicePixelRatio
  • Dimensions internes/externes et position de fenetre
  • Resultats des media queries CSS pour les dimensions de l'appareil

Verification

Apres le chargement d'un profil :

console.log('Screen:', screen.width, 'x', screen.height);
console.log('Available:', screen.availWidth, 'x', screen.availHeight);
console.log('Pixel Ratio:', window.devicePixelRatio);
console.log('Viewport:', window.innerWidth, 'x', window.innerHeight);
console.log('Color Depth:', screen.colorDepth);

Toutes les valeurs doivent correspondre au profil charge.

Pour commencer

  1. Telechargez BotBrowser depuis GitHub
  2. Chargez un profil d'empreinte avec --bot-profile
  3. Configurez defaultViewport: null dans votre framework d'automatisation
  4. Verifiez avec CreepJS ou BrowserLeaks
#screen#window#fingerprinting#privacy#viewport