Тест антидетектов · методика

Как мы тестируем антидетект браузеры

Методику мы зафиксировали 2026-10-28, до первых результатов. Все продукты проходили тест по одним правилам, на одном компьютере и с настройками по умолчанию. Здесь перечислены все правила, исключённые проверки и отступления от плана, чтобы каждый балл можно было проверить.

Тест 2026-10-28/29

Коротко

Каждый браузер может набрать до 100 баллов в семи разделах: реальные антибот-проверки (35), профили нельзя связать (20), нет невозможных значений (15), свежесть движка (10), публичные чекеры (10), скорость и RAM (5), цена и открытость (5). Два профиля каждого продукта работали на одном Linux-сервере, у каждого продукта свой свежий ISP-прокси из США, а обычный Chrome на том же IP служил контролем. Мы разрабатываем AliasMode, и он оценивался по тем же правилам.

Как считаются баллы

Правило для каждого балла. Правила одни для всех браузеров.
РазделБаллыПравило
Реальные антибот-проверки35Cloudflare: 14 × пройденные страницы / 3. reCAPTCHA v3: 11,2 × (балл − 0,1) / 0,8, от 0 до 11,2. Fingerprint Pro: 4,2 за отсутствие флага «бот», 2,8 за отсутствие флага подмены браузера и 2,8 за отсутствие флага виртуальной машины.
Профили нельзя связать2020 × хешированные сигналы, которые различаются у двух профилей / 7
Нет невозможных значений1515 × (1 − невозможные значения / 10), не меньше 0
Свежесть движка1010 − 2,5 × число мажорных версий отставания от стабильного браузера, не меньше 0. Движки Chromium сравниваются со стабильным Chrome (156), движки Firefox — со стабильным Firefox (159) в день теста. Если user agent заявляет версию новее движка, считается версия движка.
Публичные чекеры10CreepJS, BrowserScan и Pixelscan, по 10/3 балла каждый. CreepJS: полный балл без lies и без флагов headless или stealth, половина при 1 или 2 lies, иначе 0. BrowserScan: полный балл × процент подлинности. Pixelscan: полный балл, если он пишет «consistent» и не находит маскировки, половина при одной проблеме, иначе 0.
Скорость и RAM52,5 × самый быстрый запуск / этот запуск, плюс 2,5 × самая низкая RAM / эта RAM
Цена и открытость5Бесплатный тариф на 10 профилей и больше: 2, на 3–9 профилей: 1. Открытый код приложения: 1. Открытый код движка: 1. Самый дешёвый платный тариф $10 в месяц или дешевле, или платный тариф не нужен: 1.

По плану DataDome давал 10 баллов, Cloudflare — 10, reCAPTCHA v3 — 8, Fingerprint Pro — 7 (3, 2 и 2). DataDome исключили (причина ниже), поэтому три остальные проверки умножены на 1,4, чтобы раздел по-прежнему давал 35 баллов.

Уровни

УровеньСумма баллов
S85 и выше
Aот 70 до 84,9
Bот 55 до 69,9
Cот 40 до 54,9
Dменьше 40

Тестовый компьютер и профили

  • Один сервер Linux x86_64: 16 ядер, 31 ГБ RAM, без GPU. Дисплей виртуальный (Xvfb). Хост один для всех продуктов.
  • Только бесплатные тарифы или пробные периоды, без оплаты. Продукт только с платными тарифами попадает в список непротестированных. Как и продукт без десктопного приложения для Linux.
  • Отпечаток: Windows, самая новая версия браузера из доступных в продукте и американский английский. Часовой пояс, геолокация и WebRTC остаются по умолчанию — обычно это «по IP». Остальные настройки тоже по умолчанию. Ничего не подкручивали.
  • Два профиля на продукт, A и B, потому что самый маленький бесплатный тариф позволяет два.
  • Мы записали версию приложения и версию движка каждого продукта и отключили автообновления там, где приложение это позволяет.
  • AppImage распаковывались и запускались напрямую, потому что смонтировать их на этом хосте нельзя.

Обычный Chrome как контроль

Перед каждым продуктом обычный Google Chrome для Linux без изменений проходил реальные антибот-проверки на IP этого продукта. Если контроль не проходил проверку, IP меняли один раз. Если контроль не проходил её снова, эту проверку исключили бы для продукта, а её баллы распределили бы по другим реальным проверкам.

С итоговыми IP обычный Chrome прошёл первую страницу Cloudflare, получил 0,9 в reCAPTCHA v3 и не получил флагов Fingerprint Pro — для каждого продукта. Значит, флаг у продукта вызван самим продуктом, а не его IP.

Прокси и паузы

  • Каждый продукт получил собственный свежий ISP-прокси из США, у одного провайдера. Оба профиля продукта работали через этот IP.
  • Между двумя загрузками страницы DataDome с одного IP проходило не меньше 5 минут.
  • Первая страница Cloudflare ставит cookie допуска на год. Поэтому вторая и третья попытки Cloudflare шли на две другие страницы с проверкой на других доменах, которые ни один профиль ещё не открывал.

Как запускали браузеры и управляли ими

  • Каждый профиль запускался так же, как его запускает собственное приложение продукта.
  • Каждую страницу мы открывали, вводя URL с клавиатуры средствами операционной системы. К браузерам, которыми управляет приложение, не подключались ни CDP, ни Playwright.
  • Camoufox и CloakBrowser — библиотеки, поэтому они запускались через собственный документированный API. Другого обычного способа запуска у них нет.
  • Профили AliasMode запускались через собственный лаунчер приложения AliasMode.
  • Мы ни разу не нажимали на чекбокс Cloudflare.
  • Доказательства: скриншот для каждого вердикта, текст страницы, скопированный с клавиатуры (Ctrl+A, Ctrl+C), данные замеров и запись экрана каждого прогона.

Проверки

Каждая проверка, страница, на которой она шла, и что засчитывается.
ПроверкаСтраницаЧто засчитывается
Cloudflare managed challengescrapingcourse.com, zerocaptcha.io, capskip.comСтраница пропускает без клика в течение 30 секунд. Страница 1 — в профиле A. Страницы 2 и 3 — по одной в каждом профиле.
reCAPTCHA v3Детектор балла antcpt.comБалл, который показывает страница
Fingerprint ProПубличная демо-площадка FingerprintSmart signals Bot, Browser Tampering и Virtual Machine
CreepJSПубличная страница CreepJSLies и проценты headless и stealth
BrowserScanbrowserscan.netПроцент подлинности отпечатка
Pixelscanpixelscan.netВердикт о согласованности и маскировка
Локальный замерНаша страница на тестовом компьютере7 хешированных сигналов, 15 проверок на невозможные значения, user agent и версия движка

7 хешированных сигналов

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

  • Изображение Canvas 2D
  • Считывание изображения WebGL
  • Аудио (офлайн-рендер)
  • Метрики текста
  • DOMRect и размер эмодзи
  • Список шрифтов
  • Голоса синтеза речи

15 невозможных значений

Каждое значение считается один раз. Сравнение идёт с обычным Chrome под Windows, а для движков Firefox — с обычным Firefox под Windows.

  1. navigator.platform не Win32.
  2. User-agent client hints не указывают Windows, или версия платформы невозможна.
  3. User agent, версия в client hints и реальная версия движка не совпадают.
  4. userAgentData нет или список brands искажён (движки Chromium).
  5. Нет базовых шрифтов Windows или видны шрифты, которые бывают только в Linux.
  6. Рендерер WebGL не похож на строку ANGLE или Direct3D из Windows, или виден программный рендерер (SwiftShader или llvmpipe).
  7. Часовой пояс не совпадает с часовым поясом IP прокси.
  8. navigator.languages и заголовок Accept-Language не совпадают.
  9. WebRTC показывает публичный IP, который не совпадает с IP прокси.
  10. Голоса синтеза речи не из Windows.
  11. Невозможные параметры экрана: доступная область больше экрана, странные отступы или pixel ratio.
  12. Невозможное значение hardwareConcurrency или deviceMemory.
  13. navigator.webdriver равен true или видны следы автоматизации.
  14. Проверки native code на изменённых функциях не проходят (подмена видна через toString или prototype).
  15. Любое другое значение, которого никогда не бывает у обычного Chrome или Firefox под Windows, — с доказательствами.

Скорость и RAM

Время запуска считается от команды запуска до полной загрузки страницы замера. RAM — это суммарный PSS (proportional set size) дерева процессов браузера с одной вкладкой замера через 60 секунд после запуска. Каждый продукт сначала запускался для прогрева, затем 3 раза с замером. На страницах указана медиана этих 3 запусков.

Исключённые проверки

  • DataDome (страница регистрации GitHub): обычный Chrome блокировался на каждом IP, где мы пробовали, — всего на 12. Значит, помечен сам хост или его диапазон IP, и проверка не могла различить браузеры. Её 10 баллов перешли к остальным реальным проверкам.
  • iphey: сервис не выдал вердикта даже для обычного Chrome на этом хосте. Его баллы перешли к CreepJS, BrowserScan и Pixelscan.
  • Pixelscan часто зависал на «scanning» или «Collecting Data», даже для обычного Chrome. Баллы даёт только вердикт, который страница показала.

Все отступления от плана

  • Cloudflare оценивается по 3 страницам вместо 1 попытки. Это правило изменилось 2026-10-29, после результатов, для всех браузеров. Одна попытка оказалась слишком случайной: повтор той же страницы через 15 секунд мог изменить результат. Перед использованием каждой новой страницы обычный Chrome прошёл её на одном из тестовых IP.
  • Страница Cloudflare 3, Dolphin Anty и Octo Browser: клик, которым наш скрипт копирует текст страницы, открыл ссылку на странице до того, как был считан текст о прохождении. Попытку повторили один раз в том же профиле, и она прошла. В профиле уже мог быть допуск, поэтому эти два прохождения засчитаны с пометкой в наших заметках.
  • Lies в CreepJS считались по сохранённой странице, одинаково для всех браузеров.
  • Часовой пояс: геобазы расходятся для этих IP (Техас или Мичиган). Верным считается часовой пояс, который совпадает с ipinfo, ip-api или с часовым поясом IP, который показывает BrowserScan.
  • Этот хост блокирует песочницу Chrome, а root-доступа у нас нет. Поэтому все браузеры на Chromium работали с --no-sandbox. Панель предупреждения, которую это добавляет, не считается невозможным значением.
  • CloakBrowser (free 146) и MoreLogin Chrome один раз получили новый IP, потому что обычный Chrome не прошёл Cloudflare на их первом IP.
  • У Octo Browser нет бесплатного тарифа, поэтому он работал на бесплатном пробном периоде на 2 дня (код TRIAL, без оплаты). GoLogin работал на бесплатном пробном периоде на 7 дней.
  • Приложение Octo Browser очищает путь к библиотекам хоста, поэтому его движок получил небольшую обёртку, которая этот путь возвращает. Обёртка добавляет к времени запуска несколько миллисекунд.
  • Dolphin Anty не принял один домен временной почты и принял другой. Новые профили в нём по умолчанию получают Linux, поэтому мы выбрали Windows 11.
  • Новые профили GoLogin сначала запускали Orbita 109, пока в приложении не был выполнен шаг «Update profiles». Оценивается прогон на Orbita 154.
  • В бесплатном тарифе Donut Browser нет отпечатка Windows, поэтому он работал с отпечатком Linux. Его невозможные значения считаются относительно Windows, как требует методика.
  • Бесплатный тариф AdsPower вмещает 2 профиля. SunBrowser и FlowerBrowser тестировались по очереди, каждый с двумя новыми профилями. Для двух поздних попыток Cloudflare каждый движок использовал один профиль.
  • Бесплатный тариф DICloak позволяет 15 запусков в день. Его 3 замера скорости прошли без прогрева, и каждый раз восстанавливались лишние вкладки, поэтому в его RAM входят и эти вкладки.
  • Один замер скорости AliasMode Firefox не загрузил страницу замера (ошибка нашего скрипта), а один запуск Donut Browser восстановил вкладку из прошлой сессии. Каждый из них повторили один раз.
  • Время запуска Camoufox включает собственный запрос геолокации библиотеки через прокси, около 3 секунд.
  • AliasMode Chromium запускался из исходников приложения AliasMode со сборкой движка для Linux, которая вошла в beta.70, до релиза, 2026-10-29. Его профили запускались через Local API приложения, который использует тот же лаунчер, что и окно приложения.
  • Один ранний прогон AliasMode Chromium отброшен: другой скрипт на хосте подключился к его управляющему порту. В следующих прогонах использовался порт, недоступный этому скрипту. Другие профили это не затронуло.

Повторные тесты

Мы повторяем тест продукта, если его разработчик просит прогон на платном тарифе через страницу контактов или если сбой вызвал наш скрипт. Продукт, который не может пройти проверку до конца, получает за неё 0 с пометкой. Каждый повторный тест идёт по этой методике и получает строку с датой в истории изменений на странице рейтинга.

Ограничения и предвзятость

  • Мы разрабатываем AliasMode — один из протестированных продуктов.
  • Список невозможных значений взят из проверок, которые AliasMode проводит перед своими релизами.
  • Правило для Cloudflare изменилось после результатов.
  • Один компьютер без GPU, один IP на продукт и только бесплатные тарифы или пробные периоды. На Windows-ПК с видеокартой или на платном тарифе результаты могут быть другими.