Назад к блогу
Идентичность

Изоляция браузера для нескольких аккаунтов: запуск независимых идентификаций

Узнайте, как запускать несколько изолированных идентификаций браузера с независимыми фингерпринтами, прокси и сессиями с помощью BotBrowser.

Изоляция по контекстам в BotBrowser

BotBrowser обеспечивает настоящую изоляцию по контекстам. Каждый контекст браузера может иметь собственные:

  • Профиль фингерпринта: различные сигналы Canvas, WebGL, аудио и navigator
  • Прокси: различные IP-адреса и сетевые пути
  • Часовой пояс: соответствующий геолокации прокси
  • Локаль и язык: согласованные с географической идентификацией
  • Cookie и хранилище: полностью изолированные по контекстам

Настройка нескольких контекстов в Playwright

const { chromium } = require('playwright-core');

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

// Контекст 1: идентификация США
const context1 = await browser.newContext({
  proxy: { server: 'socks5://us-proxy:1080' },
  locale: 'en-US',
  timezoneId: 'America/New_York',
});

// Контекст 2: идентификация Великобритании
const context2 = await browser.newContext({
  proxy: { server: 'socks5://uk-proxy:1080' },
  locale: 'en-GB',
  timezoneId: 'Europe/London',
});

const page1 = await context1.newPage();
const page2 = await context2.newPage();

Несколько профилей через CLI

Для отдельных экземпляров браузера с разными профилями фингерпринтов:

# Экземпляр 1: идентификация США
chrome --bot-profile="/profiles/us-profile.enc" \
       --proxy-server="socks5://us-proxy:1080" \
       --bot-config-timezone="America/New_York" \
       --bot-config-locale="en-US" \
       --user-data-dir="/tmp/session-1"

# Экземпляр 2: идентификация Великобритании
chrome --bot-profile="/profiles/uk-profile.enc" \
       --proxy-server="socks5://uk-proxy:1080" \
       --bot-config-timezone="Europe/London" \
       --bot-config-locale="en-GB" \
       --user-data-dir="/tmp/session-2"

Что изолируется

Сигналы фингерпринта. Каждый контекст сообщает разные значения для Canvas, WebGL, аудио, свойств navigator, размеров экрана и доступности шрифтов.

Сетевая идентификация. Каждый контекст маршрутизируется через свой прокси с соответствующими настройками часового пояса и локали.

Хранилище и cookie. Cookie, localStorage, sessionStorage и IndexedDB полностью изолированы между контекстами.

Лучшие практики

Согласуйте географию прокси с идентификацией

Всегда согласовывайте часовой пояс, локаль и язык с геолокацией прокси:

--proxy-server="socks5://jp-proxy:1080" \
--bot-config-timezone="Asia/Tokyo" \
--bot-config-locale="ja-JP" \
--bot-config-languages="ja,en"

Используйте разные профили для разных аккаунтов

Каждый аккаунт должен иметь отдельный профиль фингерпринта для поддержания разделения.

Отдельные каталоги данных пользователя

Каждому экземпляру нужен свой --user-data-dir для предотвращения конфликтов профилей.

Детерминированные seed шума

Используйте разные значения --bot-noise-seed для каждого аккаунта для согласованного, но уникального шума фингерпринтов.

Проверка

После настройки нескольких контекстов убедитесь, что:

  1. Каждый контекст показывает разный IP-адрес
  2. Хеши Canvas различаются между контекстами
  3. Строки рендерера WebGL соответствуют профилю каждого контекста
  4. Часовой пояс и локаль корректны для каждого контекста
  5. Cookie и хранилище не утекают между контекстами

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

  1. Скачайте BotBrowser с GitHub
  2. Подготовьте несколько профилей фингерпринтов
  3. Настройте прокси для каждой идентификации
  4. Используйте отдельный --user-data-dir для каждого экземпляра
#multi-account#isolation#per-context#identity#privacy