С чего начать
Логика фильтрации: как BotBan принимает решение
Техническое описание для специалистов: где работает защита, какие признаки учитываются, как из них складывается решение и что не даёт задеть живого человека.
Эта статья — для технических специалистов: как устроена защита и по какой логике она отличает ботов от людей. Короткое объяснение без подробностей — в статье Как это работает.
Где работает защита
- Модуль на сервере сайта. PHP-модуль подключается раньше CMS и на каждый запрос спрашивает решение у нашего API. Ответ приходит за единицы миллисекунд, таймаут — 300 мс.
- Кэш решений на стороне сайта. Пропуск без замечаний хранится 5 минут, проверка и блокировка — не дольше 30 секунд, чтобы ошибка исправлялась быстро. Посетитель, чьё решение лежит в кэше, задержки не замечает вовсе.
- Трафик через нас не идёт. DNS и прокси менять не нужно: посетители по-прежнему приходят прямо на ваш сервер.
- Минимум данных. Мы получаем адрес, строку браузера, путь, реферер и короткий список заголовков. Тела запросов, cookie и данные форм не передаются.
- Скрипт в браузере — по желанию. Он добавляет признаки, которые видно только изнутри браузера, а на конструкторах сайтов, где нет доступа к серверу, работает самостоятельно.
Порядок решения
Решение принимается по шагам, и ранние шаги сильнее поздних:
- Режим сайта. Пока домен не подтверждён, идёт неделя обучения или выбран режим наблюдения, решение считается и пишется в журнал, но посетитель проходит.
- Правила владельца. Белые списки адресов и путей, чёрные списки адресов, сетей и стран. Сеть в чёрном списке не может быть шире /20 для IPv4 и /48 для IPv6.
- Служебные запросы.
/robots.txtотдаётся всем, запросы с сервера самого сайта — cron, обращения CMS к самой себе — проходят. - Роботы. Подписанные агенты проверяются по подписи, заявленные роботы — по адресу (подробнее ниже).
- Балл. Сумма признаков сравнивается с порогами сайта.
- Правила проверки. Страны аудитории, режим «Под атакой» и зарубежный рой умеют назначать только проверку.
- Предохранители. Общий адрес вместо блокировки получает проверку, поисковик, подтверждённый по адресу, не блокируется.
Балл и пороги
Каждый признак — улика с весом. Сумма от 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
Не нашли ответа?
Напишите в поддержку из кабинета — отвечаем и дополняем документацию.
Подключить бесплатно