Назад к блогу
Отпечатки

Защита экрана и окна в BotBrowser: согласованная идентичность дисплея

Как BotBrowser контролирует размеры экрана, соотношение пикселей и свойства окна для согласованных сигналов отпечатка дисплея.

Риск для конфиденциальности

Свойства дисплея, такие как разрешение экрана, глубина цвета, соотношение пикселей и размеры окна, доступны любому скрипту без разрешений. Эти значения могут способствовать формированию сигнала отслеживания. BotBrowser контролирует все свойства дисплея на уровне движка через профиль отпечатка.

Конфигурация экрана на основе профиля

Каждый профиль содержит полный набор свойств дисплея. Загрузка профиля применяет их согласованно:

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

CSS media queries, свойства JavaScript screen и ограничения размеров окна согласуются с профилем.

Настройка фреймворка автоматизации

При использовании Playwright или Puppeteer отключите viewport по умолчанию, чтобы размеры экрана профиля вступили в силу.

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
});

Без defaultViewport: null (Puppeteer) или viewport: null (Playwright) фреймворк переопределит размеры экрана профиля.

Что контролирует профиль

Профили BotBrowser управляют всеми значениями дисплея:

  • screen.width, screen.height, screen.availWidth, screen.availHeight
  • screen.colorDepth и screen.pixelDepth
  • window.devicePixelRatio
  • Внутренние/внешние размеры и позиция окна
  • Результаты CSS media queries для размеров устройства

Проверка

После загрузки профиля:

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);

Все значения должны соответствовать загруженному профилю.

Начало работы

  1. Скачайте BotBrowser с GitHub
  2. Загрузите профиль отпечатка с --bot-profile
  3. Установите defaultViewport: null в вашем фреймворке автоматизации
  4. Проверьте с помощью CreepJS или BrowserLeaks
#screen#window#fingerprinting#privacy#viewport