JavaScript фінгерпринтинг та детектування ботів: як вебсайти вас ідентифікують

721 переглядів · вподобань · 18 поширень
Поширити
Від Unled Network · 5 квітня 2026 · читання за 17 хвилин
JavaScript Fingerprinting та виявлення ботів: як веб-сайти вас ідентифікують

Ключові висновки

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

Щоразу, коли ви відвідуєте сайт, ваш браузер мовчки розкриває десятки унікальних характеристик, розширення екрана, модель GPU, встановлені шрифти, особливості обробки звуку та точний спосіб, у який браузер відображає невидимі canvas-елементи. Разом ці сигнали створюють відбиток браузера який такий ж унікальний, як людський відбиток пальця.

Ця технологія працює в основі сучасних систем виявлення ботів, запобіганню шахрайству та захисту від автоматизації. Розуміння того, як це працює, критично важливо, чи то ви захищаєте свій сайт від ботів, чи намагаєтесь зрозуміти, чому певні системи безпеки кидають виклик вашому трафіку.

Що таке відбиток JavaScript?

Відбиток JavaScript це техніка, яка використовує браузерні JavaScript API для збору характеристик пристрою та оточення, створюючи унікальний ідентифікатор для кожної сесії браузера. На відміну від cookies (які користувачі можуть видалити) або IP-адрес (які змінюються), відбитки є:

Статистика унікальності: Дослідження проекту EFF's Panopticlick виявило, що 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 (renderer, vendor) та виробляє унікальний рендерний вихід. Розширення WEBGL_debug_renderer_info розкриває точну модель GPU. Поєднане з WebGL тестами рендеринга, це створює сильний апаратний відбиток.

AudioContext-відбиток

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

Шрифт-відбиток

Різні версії ОС, мовні пакети та встановлені застосунки добавляють унікальні колекції шрифтів. Вимірюючи ширину та висоту рендерингу тексту в різних шрифтах, скрипти визначають, які шрифти встановлені, створюючи шрифт-базований відбиток.

Властивості Navigator та Screen

СигналЩо він розкриваєЕнтропія
navigator.userAgentВерсія браузера, ОС, тип пристроюСередня (легко підробляється)
navigator.languageМова, яка надається перевагуНизька-середня
navigator.hardwareConcurrencyКількість ядер процесораНизька
navigator.deviceMemoryОбсяг оперативної пам'яті (приблизно)Низька
screen.width/heightРоздільна здатність дисплеяСередня
screen.colorDepthМожливість глибини кольоруНизька
navigator.platformРядок платформи ОСНизька (застаріла)
navigator.maxTouchPointsМожливість сенсорного екранаНизька
Intl.DateTimeFormat().resolvedOptions().timeZoneЧасовий поясСередня

Додаткові сигнали високої цінності

TLS Fingerprinting (JA3/JA4)

TLS fingerprinting працює на рівні з'єднання, до того як запуститься будь-який JavaScript

JA3 Fingerprinting

Створений Salesforce, JA3 хешує компоненти повідомлення TLS Client Hello: версія SSL, шифри, розширення, еліптичні криві та формати EC point. Кожний HTTP-клієнт (Chrome, Firefox, Python requests, Go http, curl) генерує унікальний хеш JA3. Це ідентифікує реальне клієнтське програмне забезпечення навіть коли заголовки user-agent підроблені.

JA4 Fingerprinting

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

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

Як анти-бот системи використовують Fingerprinting

Сучасні анти-бот рішення такі як Cloudflare Bot Management, Akamai Bot Manager та DataDome поєднують fingerprinting з кількома рівнями виявлення:

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

Виявлення безголових браузерів

Безголові браузери (Chrome headless, Puppeteer, Playwright) залишають явні ознаки:

Підробка Fingerprint та Anti-Detection

Кілька інструментів намагаються змінити браузерні відбитки:

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

Стратегії захисту для власників сайтів

Якщо ви захищаєте свій сайт від ботів, впроваджуйте відбиток браузера як частину багаторівневого захисту:

Проблеми приватності

Відбиток браузера викликає серйозні занепокоєння щодо приватності. Основні браузери все частіше обмежують можливості відбитків:

Захистіть свій веб-сайт від атак ботів

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

Telegram: @unlednetwork →    Напишіть нам у WhatsApp →

Коментарі

Маєте питання чи досвід? Приєднуйтесь. Ваш 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