JavaScript-фингерпринтинг и обнаружение ботов: как сайты вас идентифицируют

3,046 просмотров · лайков · 90 поделились
Поделиться
Автор: Unled Network · 5 апр. 2026 г. · 17 мин чтения
JavaScript-фингерпринтинг и обнаружение ботов: как сайты вас идентифицируют

Ключевые выводы

  • JavaScript-фингерпринтинг собирает 50+ характеристик браузера для создания уникального идентификатора, он более устойчив, чем куки, и его сложнее заблокировать.
  • Ключевые сигналы фингерпринтинга включают Canvas, WebGL, AudioContext, шрифты, свойства экрана и данные Navigator API.
  • Антибот-системы комбинируют JS-фингерпринтинг с TLS-фингерпринтингом (JA3/JA4) и поведенческим анализом для высокоточной детекции ботов.
  • Headless-браузеры (Puppeteer, Playwright) и инструменты автоматизации оставляют обнаруживаемые следы, которые выявляет фингерпринтинг: отсутствующие API, идентичные выходные данные, аномалии времени.
  • Спуфинг отпечатков возможен, но становится всё сложнее, антибот-системы используют проверки согласованности, которые ловят несоответствия подменённых значений.

Каждый раз, когда вы заходите на сайт, ваш браузер молча раскрывает десятки уникальных характеристик: разрешение экрана, модель GPU, установленные шрифты, особенности обработки звука и то, как именно браузер рендерит невидимые canvas-элементы. Вместе эти сигналы создают браузерный отпечаток, столь же уникальный, как отпечаток пальца человека.

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

Самый мощный рычаг для повышения эффективности платного трафика в 2026 году, это гигиена аккаунтов. Возрастные кабинеты, чистые платёжные инструменты и изолированные браузерные профили дают преимущество в CPACost Per Acquisition, стоимость одного целевого действия (продажи, регистрации, лида).Подробнее в глоссарии → на 30-50% на том же креативе.

Сергей М., старший медиабайер Unled Network

Что такое JavaScript-фингерпринтинг?

JavaScript-фингерпринтинг, это техника, использующая браузерные JavaScript API для сбора характеристик устройства и окружения, создающая уникальный идентификатор для каждого сеанса браузера. В отличие от куки (которые пользователь может удалить) или IP-адресов (которые меняются), отпечатки:

Статистика уникальности: Исследование проекта Panopticlick от EFF показало, что 83,6% браузеров имеют уникальный отпечаток. При включении canvas-фингерпринтинга уникальность превышает 95%. Современные системы, использующие 50+ сигналов, достигают почти 100% уникальности среди типичных групп пользователей.

Как работает браузерный фингерпринтинг

Скрипт фингерпринтинга обычно работает в три этапа:

  1. Сбор: JavaScript API запрашивают свойства браузера, объект navigator, свойства экрана, рендеринг canvas, возможности WebGL, обработку AudioContext и т.д.
  2. Хеширование: Собранные значения объединяются и хешируются (обычно SHA-256 или MurmurHash3) в компактную строку отпечатка
  3. Сравнение: Хеш сравнивается с известными отпечатками, соответствует ли он предыдущему посетителю, известному бот-инструменту или подменённому окружению

Ключевые сигналы фингерпринтинга

Canvas-фингерпринтинг

Самый мощный сигнал фингерпринтинга. Скрытый элемент <canvas> рисует текст, фигуры и градиенты. Попиксельный выводНебольшой трекинг-фрагмент на вашем сайте, записывающий действия посетителей (просмотры страниц, добавление в корзину, покупки), чтобы платформа могла оптимизироваться.Подробнее в глоссарии → варьируется в зависимости от GPU, версии драйвера, движка рендеринга шрифтов и реализации сглаживания. Два разных устройства почти никогда не дают идентичный canvas-вывод.

WebGL-фингерпринтинг

WebGL раскрывает информацию о GPU (рендерер, производитель) и создаёт уникальный вывод рендеринга. Расширение WEBGL_debug_renderer_info показывает точную модель GPU. В сочетании с тестами рендеринга WebGL это создаёт сильный аппаратный отпечаток.

AudioContext-фингерпринтинг

Web Audio API обрабатывает аудиосигналы на каждом устройстве по-разному из-за различий в аппаратном и программном обеспечении. Генерируя осциллятор и анализируя выходной сигнал, скрипты фингерпринтинга захватывают уникальные характеристики обработки звука.

Шрифтовой фингерпринтинг

Разные версии ОС, языковые пакеты и установленные приложения добавляют уникальные наборы шрифтов. Измеряя ширину/высоту рендеринга текста различными шрифтами, скрипты определяют, какие шрифты установлены, создавая отпечаток на основе шрифтов.

Свойства Navigator и экрана

СигналЧто раскрываетЭнтропия
navigator.userAgentВерсия браузера, ОС, тип устройстваСредняя (легко подделывается)
navigator.languageПредпочитаемый язык(и)Низкая-Средняя
navigator.hardwareConcurrencyКоличество ядер CPUНизкая
navigator.deviceMemoryОбъём RAM (приблизительно)Низкая
screen.width/heightРазрешение дисплеяСредняя
screen.colorDepthГлубина цветаНизкая
navigator.platformСтрока платформы ОСНизкая (устарело)
navigator.maxTouchPointsПоддержка сенсорного вводаНизкая
Intl.DateTimeFormat().resolvedOptions().timeZoneЧасовой поясСредняя

Дополнительные ценные сигналы

TLS-фингерпринтинг (JA3/JA4)

TLS-фингерпринтинг работает на уровне соединения, до того, как выполняется любой JavaScript:

JA3-фингерпринтинг

Созданный Salesforce, JA3 хеширует компоненты TLS Client Hello: версию SSL, шифры, расширения, эллиптические кривые и форматы EC-точек. Каждый HTTP-клиент (Chrome, Firefox, Python requests, Go http, curl) создаёт уникальный JA3-хеш. Это идентифицирует фактическое клиентское ПО, даже если заголовки user-agent подделаны.

JA4-фингерпринтинг

Новый стандарт JA4 улучшает JA3 более читаемым форматом и лучшим отслеживанием версий. Он создаёт строку отпечатка, например "t13d1715h2_8daaf6152771_b0da82dd1658", которая кодирует версию TLS, количество шифров, количество расширений и значения ALPN.

Почему TLS-фингерпринтинг разрушителен для ботов: Подделка TLS-отпечатка требует модификации TLS-библиотеки на уровне C/C++, это гораздо сложнее, чем изменение строк user-agent. Большинство операторов ботов используют HTTP-библиотеки Python, Go или Node.js, которые имеют характерные JA3-хеши, мгновенно идентифицирующие их как не-браузерные клиенты.

Как антибот-системы используют фингерпринтинг

Современные антибот-решения, такие как Cloudflare Bot Management, Akamai Bot Manager и DataDome, комбинируют фингерпринтинг с несколькими уровнями обнаружения:

  1. Проверка TLS-отпечатка: Убедиться, что соединение исходит от реального браузера, а не HTTP-библиотеки
  2. Выполнение JavaScript: Запуск скриптов сбора отпечатков, боты, неспособные выполнить JS, немедленно помечаются
  3. Валидация согласованности: Проверка, что JS-отпечаток соответствует TLS-отпечатку (например, если JA3 говорит Chrome, а canvas указывает на headless, пометить)
  4. Сравнение с известными ботами: Сопоставление отпечатка с базой данных сигнатур известных бот-инструментов
  5. Поведенческий слой: Комбинация оценки отпечатка с движением мыши, временем кликов и паттернами прокрутки

Обнаружение headless-браузеров

Headless-браузеры (Chrome headless, Puppeteer, Playwright) оставляют характерные следы:

Спуфинг отпечатков и антидетект

Несколько инструментов пытаются модифицировать браузерные отпечатки:

ИнструментПодходРиск обнаружения
GoLoginКастомный Chromium с настраиваемыми профилями отпечатковСредний
MultiloginИмитация браузера с глубокой настройкой отпечаткаСредний
Puppeteer Extra (Stealth)Плагин, патчащий обнаруживаемые артефакты PuppeteerСредний-Высокий
undetected-chromedriverМодифицированный ChromeDriver, избегающий типичных детекцийСредний-Высокий
Расширения браузераБлокировщик canvas, спуфинг WebGLВысокий (добавляет обнаруживаемые артефакты)
Фундаментальная проблема спуфинга: Изменение canvas-вывода для соответствия другому GPU требует идеальной симуляции конвейера рендеринга этого GPU. Антибот-системы тестируют сотни микро-вариаций, которые почти невозможно последовательно подделать. Несогласованность подменённых значений часто более обнаруживаема, чем исходный отпечаток.

Стратегии защиты для владельцев сайтов

Если вы защищаете свой сайт от ботов, внедряйте фингерпринтинг как часть многоуровневой защиты:

Вопросы конфиденциальности

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

Защитите свой сайт от атак ботов

Наша команда безопасности внедряет комплексное обнаружение ботов, фингерпринтинг, DDoS-защиту и настройку WAF для сайтов и приложений, подвергающихся атакам.

Telegram: @unlednetwork →    Написать в WhatsApp →

В цифрах

18
Локалей, в которых мы публикуем для глобального охвата

Комментарии

Есть вопрос или опыт? Присоединяйтесь. Ваш email не публикуется.

    Maria S.

    We implemented this last month and already seeing positive signals.

    Author

    Great question! This is something we see frequently with our clients. The key is consistency rather than a one-time fix.

Присоединиться

Без HTML. Комментарии проходят модерацию.

What You Get

High Trust Score

Pre-established account with positive activity history and cleared standing

Ready to Spend

Skip the warm-up phase - accounts are ready for immediate campaign launch

High Spend Ceiling

Elevated daily and monthly spend limits from day one

30-Day Replacement

Full replacement if account triggers suspension within 30 days

24h Delivery

Credentials delivered within 24 hours of payment confirmation

Dedicated Support

Direct Telegram/WhatsApp line to your account manager

WhatsApp Telegram