Изоляция браузера для нескольких аккаунтов: запуск независимых идентификаций
Узнайте, как запускать несколько изолированных идентификаций браузера с независимыми фингерпринтами, прокси и сессиями с помощью 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 для каждого аккаунта для согласованного, но уникального шума фингерпринтов.
Проверка
После настройки нескольких контекстов убедитесь, что:
- Каждый контекст показывает разный IP-адрес
- Хеши Canvas различаются между контекстами
- Строки рендерера WebGL соответствуют профилю каждого контекста
- Часовой пояс и локаль корректны для каждого контекста
- Cookie и хранилище не утекают между контекстами
Начало работы
- Скачайте BotBrowser с GitHub
- Подготовьте несколько профилей фингерпринтов
- Настройте прокси для каждой идентификации
- Используйте отдельный
--user-data-dirдля каждого экземпляра