Headless-браузери та відбиток браузера: як фільтр відрізняє програму від людини

Headless-браузер виконує JavaScript і малює сторінку, як справжній, тому прості перевірки його не бачать. Ловлять його за відбитком браузера — fingerprint — і за слідами автоматизації, які важко сховати повністю.

Боти і фрод8 хв читання
Headless-браузери та відбиток браузера: як фільтр відрізняє програму від людини
Зміст
  1. Що таке headless-браузер
  2. Що таке відбиток браузера (fingerprint)
  3. Ознаки headless та автоматизації
  4. Антидетект-браузери: де межа
  5. Хибні спрацювання: вбудовані браузери та WebView
  6. Як працює перевірка браузера в ArtisanClo
  7. Як вибудувати захист від headless: практичні кроки
  8. Відбиток браузера і приватність: що важливо знати
  9. Приклад: який вигляд має розбір підозрілого візиту
  10. Підсумок

Простого бота видає те, що він не виконує JavaScript. Але рекламу давно перевіряють не скриптами на curl, а справжніми браузерами під керуванням програм. Такий headless-браузер завантажує сторінку, виконує код, чекає, клікає — і для наївного захисту нічим не відрізняється від відвідувача. Відрізнити його допомагає відбиток браузера, або fingerprint, і сліди автоматизації, які програма лишає в оточенні.

Що таке headless-браузер

Headless означає «без голови» — без графічного вікна. Це той самий рушій Chrome чи Firefox, тільки запущений у фоні й керований програмою. Популярні інструменти автоматизації — Puppeteer, Playwright, Selenium — уміють відкривати сторінки, заповнювати форми, робити скриншоти й проходити ланцюжком переходів.

Хто використовує headless-браузери щодо вашого лендингу:

  • рекламні майданчики — перевіряють посадкову сторінку так, як її побачить користувач;
  • спай-сервіси — зберігають лендинги повністю (докладніше — у статті захист від спай-сервісів);
  • фрод-трафік — накручують кліки й навіть конверсії;
  • парсери конкурентів — збирають тексти, ціни, структуру.

Головна проблема для фільтра: headless-браузер проходить перевірку на виконання JavaScript. Тому потрібні тонші ознаки.

Що таке відбиток браузера (fingerprint)

Відбиток браузера — сукупність характеристик, які браузер розкриває сайту. Частину з них він надсилає сам, частину вимірює скрипт.

Компонент Що це Що може видати
User-agent рядок із назвою та версією браузера й ОС шаблонну чи застарілу версію
Мова й локаль список мов браузера мову, що не збігається з гео
Часовий пояс пояс системи пояс, що не збігається з країною IP
Екран роздільність, глибина кольору, щільність пікселів серверні «круглі» розміри
Графіка відеокарта, рендерер, особливості відмальовування програмний рендерер замість реальної відеокарти
Шрифти набір установлених шрифтів «голу» серверну систему
Апаратні дані кількість ядер, пам’ять, сенсорний екран десктопні характеристики в «телефона»
Можливості API які інтерфейси браузера доступні відсутність того, що є в справжнього браузера цієї версії

Відбиток використовують у два способи. Для впізнавання — щоб зрозуміти, що різні візити прийшли з одного пристрою. І для перевірки справжності — щоб зрозуміти, чи схожий цей набір на реальний пристрій. Для захисту від ботів важливіше друге — на ньому тримається будь-який антибот для сайту.

Ознаки headless та автоматизації

Прапорець webdriver

За стандартом браузер, яким керує програма через інтерфейс автоматизації, виставляє властивість navigator.webdriver. Це найвідоміша ознака — і найлегше приховувана: її підміняють одним рядком. Тому серйозний захист не спирається лише на неї.

Сліди керування

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

Невідповідність заявленому

Headless-браузер часто видає себе суперечностями:

  • user-agent каже «Chrome на Windows», а набір API — як у headless-збірки на Linux;
  • заявлено iPhone, але підтримуються інтерфейси, яких немає в Safari;
  • екран «мобільний», а сенсорного введення немає;
  • відеокарта визначається як програмний рендерер, типовий для серверів.

Серверне оточення

Мінімальний набір шрифтів, відсутність медіапристроїв, «кругла» роздільність екрана, неприродні значення апаратних характеристик — усе це ознаки браузера, запущеного на сервері без реального користувача.

Час і поведінка

Програма діє або миттєво, або з однаковими паузами. Немає рухів миші, дотиків, прокручування — або вони ідеально рівні. Підроблений час на сторінці теж можна помітити: коли те, що повідомляє скрипт, не збігається з реальними таймінгами.

Порада. Жодна ознака з цього списку сама собою не доводить, що це бот. Доводить поєднання: три-чотири незалежні суперечності в одного візиту майже не трапляються у справжніх браузерів.

Антидетект-браузери: де межа

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

Для фільтра трафіку важливо розрізняти два випадки:

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

Інакше кажучи, відбиток — не єдина лінія оборони. Добре замаскованого бота видає те, що він робить, а не те, який він має вигляд.

Хибні спрацювання: вбудовані браузери та WebView

Найчастіша помилка під час фільтрації за відбитком — відсікати вбудовані браузери застосунків. Facebook, Instagram, TikTok відкривають посилання у вбудованому браузері на основі WebView. У нього:

  • незвичний user-agent із назвою застосунку;
  • урізаний набір можливостей порівняно з повноцінним браузером;
  • ознаки, що збігаються зі слідами автоматизації;
  • часто — загублений реферер.

Водночас саме через вбудовані браузери приходить більша частина живого трафіку із соцмереж. Тому ознаку автоматизації у WebView не можна трактувати як явного бота — лише як один із сигналів у загальній оцінці. Докладніше про те, як мітка кліку майданчика допомагає відрізнити такий візит від бота, — у статті fbclid, gclid, ttclid.

Як працює перевірка браузера в ArtisanClo

В ArtisanClo перевірка браузера — окремий крок після мережевих перевірок. Скрипт виконується в браузері відвідувача й повідомляє, що він побачив; сторінка прихована, доки не надійде рішення. За це відповідають кілька перемикачів захисту:

  • Блокування headless-браузерів — ловить ботів і автоклікери, що вдають із себе браузер. За явних слідів автоматизації відсікає одразу, у журналі причина «Явний headless-браузер».
  • Обов’язкове виконання JS — відвідувач без JavaScript отримує сильний штраф і відправляється на перевірку. Прості боти й парсери на цьому спотикаються.
  • Перевірка живої взаємодії — дивиться, як рухаються миша й палець: людина поводиться природно, бот — ні. Додає невелике очікування, тому її вмикають для суворих майданчиків.
  • Мінімальний час на сторінці — відвідувач, що пробув менше за заданий час, відправляється на сторінку очікування й перевіряється заново.

Вбудовані браузери Facebook, Instagram і TikTok та WebView у застосунках розпізнаються окремо: ознака автоматизації в них не відсікає візит одразу, а враховується в оцінці довіри разом із мережею, часом і реферером. Для кампаній, де майже весь трафік іде з вбудованого браузера, рекомендовано строгість «Баланс».

Браузери-роботи з доведеними ознаками й підробка часу на сторінці потрапляють до спільного списку ботів з першого разу: наступний візит із цієї адреси в будь-який потік будь-якого клієнта одразу отримує White Page.

У статистиці відмови цього кроку зібрано в частку «Перевірка браузера», а візити, які не виконали скрипт і не повернулися, — у «Перевірка не повернулася». Якщо росте саме частка «Перевірка браузера», це сигнал переглянути строгість: на цьому кроці фільтр помиляється найчастіше.

Перевірка браузера працює з підключенням JS-тегом і PHP-файлом. Про різницю способів — у статті як підключити клоаку до сайту, а повний перелік перевірок — на сторінці можливостей.

Як вибудувати захист від headless: практичні кроки

  1. Почніть із мережі. Більшість headless-ботів запускають на серверах — блокування дата-центрів відсікає їх ще до перевірки браузера. Див. VPN, проксі та IP дата-центрів.
  2. Вимагайте JavaScript там, де це безпечно. Якщо майданчик передає мітку кліку й трафік іде зі звичайних браузерів, обов’язковий JS відсікає парсери без втрат.
  3. Увімкніть блокування headless-браузерів на всіх потоках.
  4. Перевірку живої взаємодії тримайте для дорогого трафіку й джерел, де багато просунутої автоматики.
  5. Не посилюйте правил для вбудованих браузерів. Для соцмереж не вмикайте зайвих жорстких правил.
  6. Дивіться причини. Якщо «Явний headless-браузер» масово спрацьовує на мобільний трафік одного майданчика — це привід розібратися, а не радіти.

Загальну логіку багатошарового захисту описано в статті як відфільтрувати ботів, а перелік типових прикмет — у матеріалі бот-трафік: ознаки.

Відбиток браузера і приватність: що важливо знати

Слово «fingerprint» часто пов’язують зі стеженням: рекламні системи використовують відбитки, щоб упізнавати користувача без cookie. В антифроді завдання інше. Фільтру не потрібно знати, хто відвідувач, — йому треба зрозуміти, чи справжній це браузер і чи поводиться він як людина. Тому для захисту від ботів важливі не унікальні ідентифікатори, а узгодженість характеристик між собою.

Звідси практичний наслідок. Браузери поступово урізають те, що можна виміряти скриптом: додають шум у відмальовування, уніфікують рядки user-agent, приховують деталі обладнання. Для впізнавання користувачів це проблема, для перевірки справжності — менша: суперечності між заявленим і реальним нікуди не зникають. А от захист, збудований на одній-двох «чарівних» ознаках, з часом перестає працювати — і це ще один аргумент на користь оцінки за сумою сигналів. Як така оцінка влаштована в системі виявлення ботів, розібрано окремо.

Приклад: який вигляд має розбір підозрілого візиту

Припустімо, у журналі є візит із причиною, пов’язаною з автоматизацією браузера. У картці кліку видно:

  • мережа — хмарний хостинг;
  • браузер заявлено як свіжий Chrome, а пристрій — комп’ютер;
  • мітки рекламного кліку немає;
  • перевірка браузера повернулася з ознаками керування програмою.

Тут усе сходиться: серверна мережа, відсутність рекламного переходу, сліди автоматизації. Це класичний робот перевірки або спай.

А ось інший візит: мобільний оператор, вбудований браузер соцмережі, мітка кліку є, ознака автоматизації слабка. Такий візит не можна відсікати за однією ознакою — найімовірніше, це звичайна людина, яка відкрила рекламу в застосунку.

Різниця між цими двома візитами і є суттю оцінки за сумою ознак: у першого суперечать одна одній одразу кілька незалежних ознак, у другого — одна, та й та пояснюється особливостями вбудованого браузера. Якщо таких «других» у журналі багато і вони йдуть на White Page, послабте строгість для цього майданчика.

Підсумок

Headless-браузер проходить прості перевірки, але лишає сліди: прапорці й об’єкти автоматизації, суперечності у відбитку, серверне оточення, неприродну поведінку. Відбиток браузера допомагає зрозуміти, чи схожий візит на реальний пристрій, а поведінкові перевірки — чи поводиться він як людина. Головне правило те саме, що й скрізь в антифроді: вирішує поєднання ознак, а не одна, інакше разом із ботами піде трафік із вбудованих браузерів соцмереж.

Часті запитання

01

Що таке headless-браузер?

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

02

Що таке відбиток браузера простими словами?

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

03

Що означає navigator.webdriver?

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

04

Чи ловить захист антидетект-браузери?

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

05

Чому вбудований браузер Instagram чи TikTok іноді виглядає як бот?

Вбудовані браузери застосунків побудовані на WebView і відрізняються від повноцінного браузера: частину можливостей у них урізано, а user-agent незвичний. Деякі ознаки збігаються з ознаками автоматизації, тому такі візити не можна відсікати за однією ознакою — лише за сукупністю.

Читайте також

9 хв читання

Розумний фільтр трафіку: як влаштована система виявлення ботів

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

8 хв читання

Боти залишають заявки на сайті: звідки фейкові ліди і як їх зупинити

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

9 хв читання

Невалідний трафік: що це таке, GIVT і SIVT і як його побачити у себе

Невалідний трафік — це кліки й покази, які не мали потрапити в оплату: роботи, накрутка, фрод. Розбираємо, як його ділять на загальний і складний, як його рахують майданчики і як побачити його у власній статистиці.

Перевірте свій трафік на ділі

Підключіть ArtisanClo до свого сайту — і побачите, хто насправді приходить із реклами та чому кожен клік отримав саме таке рішення.