BotBan

С чего начать

Логика фильтрации: как BotBan принимает решение

Техническое описание для специалистов: где работает защита, какие признаки учитываются, как из них складывается решение и что не даёт задеть живого человека.

Эта статья — для технических специалистов: как устроена защита и по какой логике она отличает ботов от людей. Короткое объяснение без подробностей — в статье Как это работает.

Где работает защита

  • Модуль на сервере сайта. PHP-модуль подключается раньше CMS и на каждый запрос спрашивает решение у нашего API. Ответ приходит за единицы миллисекунд, таймаут — 300 мс.
  • Кэш решений на стороне сайта. Пропуск без замечаний хранится 5 минут, проверка и блокировка — не дольше 30 секунд, чтобы ошибка исправлялась быстро. Посетитель, чьё решение лежит в кэше, задержки не замечает вовсе.
  • Трафик через нас не идёт. DNS и прокси менять не нужно: посетители по-прежнему приходят прямо на ваш сервер.
  • Минимум данных. Мы получаем адрес, строку браузера, путь, реферер и короткий список заголовков. Тела запросов, cookie и данные форм не передаются.
  • Скрипт в браузере — по желанию. Он добавляет признаки, которые видно только изнутри браузера, а на конструкторах сайтов, где нет доступа к серверу, работает самостоятельно.

Порядок решения

Решение принимается по шагам, и ранние шаги сильнее поздних:

  1. Режим сайта. Пока домен не подтверждён, идёт неделя обучения или выбран режим наблюдения, решение считается и пишется в журнал, но посетитель проходит.
  2. Правила владельца. Белые списки адресов и путей, чёрные списки адресов, сетей и стран. Сеть в чёрном списке не может быть шире /20 для IPv4 и /48 для IPv6.
  3. Служебные запросы. /robots.txt отдаётся всем, запросы с сервера самого сайта — cron, обращения CMS к самой себе — проходят.
  4. Роботы. Подписанные агенты проверяются по подписи, заявленные роботы — по адресу (подробнее ниже).
  5. Балл. Сумма признаков сравнивается с порогами сайта.
  6. Правила проверки. Страны аудитории, режим «Под атакой» и зарубежный рой умеют назначать только проверку.
  7. Предохранители. Общий адрес вместо блокировки получает проверку, поисковик, подтверждённый по адресу, не блокируется.

Балл и пороги

Каждый признак — улика с весом. Сумма от 0 до 100 сравнивается с порогами: по умолчанию от 40 — проверка, от 70 — блокировка. Пороги настраиваются, но порог блокировки не может быть ниже 50.

  • Один признак не блокирует. Самый тяжёлый весит 45, поэтому для блокировки нужны минимум две независимые улики.
  • Улики одной природы не складываются без конца. У групп заголовков и профиля браузера есть потолок: по одной группе можно набрать только на проверку. Одно и то же наблюдение, увиденное с двух сторон, считается один раз.
  • Оправдания не работают против тяжёлой улики. Признаки человека снижают балл, но не при такой улике, как поиск чужих секретов: поведение человека бот может изобразить.

Какие признаки учитываются

  • Сеть. Хостинг, облако или прокси-провайдер — с малым весом, потому что через те же сети ходят люди с VPN. Память о блокировках адреса за последние часы, общая для всех сайтов BotBan. Страна — относительно аудитории сайта.
  • Соответствие заголовков браузеру. Настоящий браузер присылает набор заголовков, который программе трудно подделать целиком: языки, сжатие, заголовки Sec-Fetch у современных Chrome, Client Hints — и всё это должно совпадать со строкой браузера. Библиотеки, сканеры и средства автоматизации в строке браузера выдают себя сразу.
  • Поведение. Слишком частые запросы, поиск служебных файлов и чужих секретов (.env, .git, дампы базы), перебор паролей к админке, переход по невидимой ссылке-ловушке, смена «масок» роботов с одного адреса, рой — одна и та же строка браузера с сотен адресов по одному-два запроса.
  • Профиль браузера (при подключённом скрипте). Признание управления программой (webdriver), следы безоконного режима, отсутствие графики, неестественный экран, часовой пояс не из страны адреса, подмена встроенных функций браузера антидетект-инструментами, синтетические события ввода. Движения мыши, прокрутка и касания экрана балл снижают.

Отсутствие данных уликой не считается: если скрипт не подключён или ещё не сработал, группа браузера просто молчит. Объяснение каждого признака — по клику на причину в журнале визитов.

Проверка и блокировка

  • Проверка — страница «Проверяем ваш браузер». Браузер получает подписанный пропуск, привязанный к адресу и браузеру, и страница открывается сама за пару секунд. При подключённом скрипте проверка — небольшая вычислительная задача: для браузера это доли секунды, для фермы ботов — ощутимая цена.
  • Блокировка — страница с кодом события и кнопкой «Я человек». Кнопка запускает ту же задачу, а владелец сайта получает оповещение, если заблокированный адрес её прошёл: возможно, правило задело живого человека.
  • Мягкие действия. Вместо страницы блокировки можно выбрать задержку ответа, перенаправление или пустую страницу, а краулерам ИИ — короткий отказ.

Поисковые и другие роботы

Имя робота в строке браузера — только заявка. Подтверждение — одним из способов: по опубликованным диапазонам адресов, по обратной записи DNS с прямой перепроверкой или по криптографической подписи запроса. Робот, который выдаёт себя за поисковик, получает улику.

Подтверждённые поисковые роботы не блокируются никогда — даже если их адрес попал в чёрный список владельца. Мониторинги, краулеры соцсетей и мессенджеров и краулеры ИИ включаются и выключаются в настройках отдельно.

Что защищает живых людей

  • Общие адреса. Мобильные операторы, операторский NAT и CDN получают максимум проверку, и репутация на них не копится: за одним адресом могут быть тысячи людей.
  • Сбой — это пропуск. Если API недоступен или не ответил за 300 мс, модуль пропускает посетителя; ошибка в самом модуле на сайт не влияет. Подробнее — в статье Что будет с сайтом, если BotBan станет недоступен.
  • Неделя обучения. Новый сайт первые 7 дней только наблюдает.
  • Автооткат. Если под блокировку внезапно попала заметная доля посетителей — по умолчанию больше 20 % сетей за окно наблюдения, — сайт сам переходит в наблюдение, а владелец получает оповещение.
  • Теневой режим. Новый признак сначала считается рядом с настоящим решением и в балл не входит, пока не подтвердится, что людей он не задевает.
  • Правила проверки не блокируют. Страны аудитории, «Под атакой» и зарубежный рой назначают только проверку и только при переходе на страницу: корзина и формы продолжают работать.
  • Всё объяснимо. Каждый визит хранится в журнале со сработавшими признаками и причиной. Отметка «Это был не бот» добавляет адрес в белый список сайта и помогает нам снижать вес признаков, которые ошибаются.

Обновлено 30 сентября 2026

Не нашли ответа?

Напишите в поддержку из кабинета — отвечаем и дополняем документацию.

Подключить бесплатно