Перейти до вмісту

Розуміння рядків User-Agent: методи виявлення ботів

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

Що таке User-Agent?

Рядок User-Agent ідентифікує програмне забезпечення (браузер чи бот), яке запитує вміст вашого сайту. Зазвичай він містить:

  • Тип браузера (Chrome, Firefox, Safari)
  • Версію браузера
  • Операційну систему (Windows, macOS, Linux)
  • Інформацію про пристрій (мобільний, десктоп, планшет)

Приклад User-Agent:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36

Навіщо аналізувати рядки User-Agent?

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

Явні методи виявлення ботів через User-Agent

1. Порожній User-Agent

Найпростіші боти часто повністю пропускають User-Agent. Блокування запитів із порожнім User-Agent швидко відсіює найменш витончених ботів.

2. Відомі сигнатури ботів

Багато ботів явно ідентифікують себе. Приклад:

Googlebot/2.1 (+http://www.google.com/bot.html)

Справжні боти чітко заявляють про свою ідентичність. Однак шкідливі боти часто підробляють легітимні сигнатури, тож додаткова перевірка, як-от DNS (PTR), є обов’язковою.

3. Явно неправильно сформовані рядки

Багато простих ботів використовують явно неправильні, зіпсовані або застарілі рядки User-Agent. Наприклад:

Mozilla/4.0 (compatible; MSIE 5.0; Windows 98)

Такі аномалії є чітким індикатором автоматизованого трафіку.

Непрямі методи виявлення ботів через User-Agent

1. Фінґерпринтинг браузера

Просунуте виявлення використовує тонкі невідповідності, які розкривають техніки фінґерпринтингу браузера:

  • Фінґерпринтинг Canvas: Відмінності в рендерингу графіки.
  • Фінґерпринтинг WebGL: Розбіжності GPU, властиві автоматизованим середовищам.
  • Перевірки WebRTC: Витоки інформації на мережевому рівні, які боти не можуть правильно імітувати.

2. Виявлення JavaScript і можливостей

Реальні браузери надійно підтримують JavaScript і численні веб-API. Боти часто працюють у середовищах із вимкненим або обмеженим JavaScript. Перевірка повної підтримки JavaScript допомагає виявити автоматизовані скрипти.

3. Перевірки узгодженості User-Agent і поведінки

Реальні браузери поводяться послідовно протягом кількох візитів. Боти часто змінюють або підробляють рядки User-Agent. Поведінкова аналітика, що виявляє швидкі зміни або підозрілі шаблони, допомагає розкрити бот-активність.

4. Таймінги й моделі взаємодії

Боти зазвичай демонструють неприродні таймінги, як-от надзвичайно швидка навігація чи повторювані запити сторінок. Вимірювання інтервалів між запитами, швидкості навігації та частоти взаємодій дає змогу ефективно виявляти автоматизовані скрипти незалежно від їхнього User-Agent.

Виявлення ботів, що видають себе за легітимні кроулери

Шкідливі боти часто підробляють рядки User-Agent легітимних кроулерів пошукових систем (Googlebot, Bingbot). Щоб їх виявити:

  • Перевірки зворотного DNS (PTR): Перевірте, чи IP-адреси відповідають доменам легітимних кроулерів.
  • Валідація прямого й зворотного DNS: Справжні кроулери завжди мають узгоджені прямі та зворотні DNS-записи.

Приклад перевірки легітимного кроулера для Googlebot:

User-Agent: Googlebot
PTR Record: crawl-123.googlebot.com
Forward DNS matches: crawl-123.googlebot.com → matches IP.

Шкідливі боти зазвичай не проходять ці перевірки.

Інтеграція перевірок User-Agent у BotBlocker

BotBlocker ефективно поєднує кілька явних і непрямих перевірок, щоб точно виявляти автоматизовані загрози:

  • Виявляє й блокує запити з порожнім і зіпсованим User-Agent.
  • Перевіряє справжні сигнатури User-Agent ботів через PTR-перевірки.
  • Застосовує просунуті непрямі методи на основі JavaScript і фінґерпринтингу для виявлення стелс-ботів.

Поєднання методів для максимального захисту

Жоден окремий метод виявлення не достатній проти витончених ботів. Ефективний захист від ботів використовує поєднання явних (просте блокування) і непрямих (фінґерпринтинг, поведінковий аналіз) методів.

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

MDN Web Docs - User-Agent