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

Заголовок Accept-Language: базове виявлення ботів у BotBlocker

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

Як працює перевірка Accept-Language

Більшість браузерів надсилають стандартний заголовок Accept-Language (наприклад, en-US, ru, de-DE). Боти та скрипти часто пропускають цей крок або заповнюють заголовок сміттям. BotBlocker блокує запити, якщо:

  • заголовок Accept-Language повністю відсутній;
  • заголовок встановлено як *, порожній рядок або він виглядає випадковим (наприклад, xxx-XX, ,,, безладні дані);
  • формат синтаксично некоректний для стандартних мовних кодів.

Цей метод зупиняє величезну частку спам-ботів і ботів-парсерів ще до того, як вони дістануться WordPress.

Чому перевірка працює

  • Майже всі реальні браузери надсилають коректне значення Accept-Language.
  • Більшість простих ботів цього не роблять, тож рання фільтрація ловить їх миттєво.
  • Ручне налаштування не потрібне.
  • Перевірка швидка й відбувається до завантаження ядра WordPress, зменшуючи марну витрату ресурсів.

Що насправді надсилають реальні браузери

Коли людина відкриває сайт у Chrome, Firefox, Safari чи Edge, браузер автоматично додає заголовок Accept-Language до кожного HTTP-запиту. Цей заголовок повідомляє серверу, якій мові відвідувач віддає перевагу. Типове значення виглядає як en-US,en;q=0.9 або de-DE,de;q=0.8,en;q=0.5. Браузер формує це значення на основі мовних налаштувань операційної системи та власних мовних уподобань. Реальним користувачам нічого не треба робити вручну - це просто працює.

Боти та автоматизовані скрипти влаштовані інакше. Багато з них написано на Python, Go чи подібних мовах з використанням базових HTTP-бібліотек. Ці бібліотеки не додають заголовок Accept-Language за замовчуванням, якщо розробник не прописав його явно. Більшість авторів ботів цим не переймаються. Саме цю прогалину BotBlocker використовує, щоб відфільтрувати їх до того, як вони завдадуть шкоди вашому сайту.

Що відбувається з заблокованими запитами

Коли BotBlocker виявляє запит із відсутнім або некоректним заголовком Accept-Language, він одразу повертає відповідь про блокування. Запит ніколи не досягає WordPress, його бази даних чи встановлених плагінів. Це зберігає низьке навантаження на сервер і швидкість сайту навіть під час активних атак ботів. Блокування відбувається на найранішому етапі життєвого циклу запиту, і це одна з головних причин такої ефективності підходу.

Як користуватися фільтрацією Accept-Language

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

Працює разом з іншими методами виявлення ботів

Перевірка Accept-Language - один із рівнів загальної системи захисту BotBlocker. Вона працює разом з аналізом User-Agent, перевірками репутації IP та обмеженням частоти запитів. Кожен рівень ловить різні типи загроз. Деякі складні боти справді підробляють коректний заголовок Accept-Language, тому BotBlocker не покладається лише на цю перевірку. Але для величезного обсягу простих ботів і парсерів, які щодня заливають сайти на WordPress, ця єдина перевірка усуває значну частину небажаного трафіку, не торкаючись легітимних відвідувачів.

За даними Cloudflare, боти становлять значну частку всього інтернет-трафіку, і багато з них навіть не намагаються імітувати поведінку реального браузера. Перевірка заголовка Accept-Language безпосередньо націлена на цю категорію трафіку.

Жодного впливу на продуктивність сайту

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

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

Чи може це заблокувати реальних відвідувачів?
Майже ніколи. Усі сучасні браузери встановлюють Accept-Language за замовчуванням. Вплив відчувають лише деякі рідкісні CLI-інструменти чи неправильно налаштовані парсери.

Чи сповільнює це сайт?
Ні, перевірка надзвичайно швидка й не додає жодної помітної затримки.

Чи достатньо цієї перевірки самої по собі?
Вона зупиняє простих ботів. Для складніших загроз BotBlocker поєднує її з додатковими перевірками. Докладніше про стандарт заголовка HTTP Accept-Language можна прочитати в MDN Web Docs та в офіційній специфікації RFC 9110.

Розширений захист BotBlocker