KillBot умеет отличать настоящих ботов (поисковые системы, сервисы) от фейковых, которые маскируются под них.
Отдельно про пропуск нейросетей и официальных ботов по IP описано здесь: https://killbot.ru/node/64
В чем проблема
Большинство ботов легко подделывают User-Agent. Например, любой скрипт может отправить запрос с User-Agent:
Googlebot/2.1 (+http://www.google.com/bot.html)
Если проверять только User-Agent — такой бот будет считаться настоящим.
Поэтому одного User-Agent недостаточно.
Как KillBot определяет фейкового бота
KillBot использует проверку через обратный DNS (PTR) и прямой DNS (A).
Логика следующая:
1. Проверяется User-Agent
Если он похож на известного бота (например Google, Yandex, Bing), включается дополнительная проверка.
2. Выполняется обратный DNS-запрос (PTR)
KillBot получает доменное имя, связанное с IP-адресом.
Пример нормального результата:
crawl-66-249-66-1.googlebot.com
3. Проверяется домен
Домен должен относиться к официальной зоне (например .googlebot.com, .yandex.ru и т.д.).
4. Выполняется прямой DNS-запрос
Полученный домен снова резолвится в IP.
5. Сравниваются IP
Если IP совпадает — бот считается настоящим.
Если хотя бы один из этапов не проходит — это фейковый бот.
Как выглядит фейковый бот
Фейковый бот обычно имеет:
- правильный User-Agent
- неправильный или отсутствующий PTR
- или несоответствие IP при обратной проверке
Пример:
User-Agent: Googlebot
IP: 1.2.3.4
PTR: отсутствует или не связан с google
Такой бот будет определён как фейковый.
Что происходит с фейковым ботом
Если бот не прошёл проверку, KillBot не отдаёт ему реальный сайт и показывает специальную страницу Fake Bot.
Эта страница:
- блокирует доступ к контенту
- не даёт собрать данные сайта
- визуально выглядит как отказ в доступе
IP и User-Agent на странице Fake Bot
KillBot специально выводит в заголовке страницы и внутри неё:
IP-адрес клиента и User-Agent
Пример:
Fake Bot [1.2.3.4] [Googlebot/2.1 ...]
Это сделано для того, чтобы можно было быстро понять:
кто именно был заблокирован и при необходимости принять решение.
Если вы уверены, что это реальный бот, достаточно добавить его IP в разрешённые.
Почему это надежно
User-Agent подделать легко.
DNS-проверку подделать практически невозможно.
Поэтому KillBot использует именно связку:
- User-Agent
- обратный DNS
- прямой DNS
Это позволяет точно отличать реальных ботов от подделок.
Коротко
Если у бота User-Agent настоящий, но DNS не подтверждает его — это фейковый бот.
KillBot блокирует его и показывает страницу Fake Bot с IP и User-Agent для быстрого анализа.