
Фильтрация трафика в Killbot возможна не только через слепки браузера, но и через гибкие правила фильтрации, которые задаются вручную. Это значит, что вы получаете прямой контроль над логикой фильтрации, настраивая её под свои реальные задачи. Правила, в зависимости от параметров браузера, параметров Киллбота, IP пользователя и других параметров, позволяют выполнять нужное действие (блокировка, капча, зацикливание, скрытие метрики).
Правила этого раздела работают на странице верификации (проверочном экране KillBot). Т.е. пользователь попадает на страницу верификации, а уже там срабатывает правило. Если вам нужно чтобы страница верификации вообще не срабатывала (например, колбеки платежных систем, соединения от сервера 1C), то для этой цели в настройках скрипта (настройках сайта) есть параметры: белый список IP, белый список user-agent, и список страниц, для которых защита вообще отключена.
Официальная документация KillBot, описание которой вы найдете ниже, содержит полное руководство по созданию собственных WAF-правил фильтрации трафика. Правила создаются в личном кабинете KillBot на странице Правила [WAF] - Создать правило.
Страница содержит 3 основных поля:
Чуть ниже вы найдете список опций:
Тестовые данные копируются целиком из всплывающего окна из ленты визитов, вставляются в поле для отладки.
Блок killbot
Блок user
Блок net
Блок request
Блок browser
Блок device
Доступные переменные: $data - содержит JSON-структуру визита (например, $data['user']['locale']). Используйте только $data. Все другие переменные - запрещены.
Разрешённые функции: strpos, stripos, strstr, stristr, str_contains, substr, preg_match, in_array, isset, empty, count, strlen, array_key_exists.
Разрешённые операторы: &&, ||, !, ==, ===, !=, !==, <, >, <=, >=.
Разрешённые конструкции: if, else, elseif, return, true, false, null.
Что запрещено:
Опасные функции - eval, exec, system, shell_exec, fopen, file_get_contents, include, require, и т.п.
Создание классов/функций - нельзя использовать function, class, namespace, new.
Глобальные переменные - $_GET, $_POST, $_SERVER и т.п.
Вывод - echo, print, die, exit.
В KillBot можно создать много правил для фильтрации. Для визита правила проверяются по порядку (по номеру / весу). Первое выполненное правило считается примененным - остальные правила игнорируется. Если ни одно правило не выполнено, то визит считается ботом или пользователем по умолчанию - на основе настроек выставленных в скрипте KillBot.
Ниже правило, которое будет считать ботом все визиты, в user agent которых есть слово Bot:
|
1 2 3 4 |
if (stripos($data['request']['user-agent'], 'bot') !== false) { return true; } return false; |
В правиле:
Вам необходимо заполнить все необходимые поля: название, код правила. JSON можно оставить стандартный, либо вставить в поле тестовые данные для отладки. После чего - сохранить правило.
В этот момент чекер Киллбота проверит синтаксис правила на валидность и выдаст результат применения правила к тестовым данным.
Если Киллбот выдал сообщение "Результат выполнения правила: FALSE - правило НЕ сработало, тестовые данные не удовлетворяют требованиям правила" - это значит что в User Agent нет подстроки Bot.
Если вы измените User Agent в тестовых данных на содержащий слово Bot, сохраните, правило вернет TRUE.
В трех полях ниже выбираются необходимые действия при срабатывании правила.
Бот/Польз. Как обработать визиты которые подходят под правило (если PHP код правила вернул TRUE). Если По умолчанию, то решение, бот или нет, будет приниматься на основе настроек слепков.
Доступные параметры:
Действие. Как реагировать на визиты которые подходят под правило (если PHP код правила вернул TRUE). Если По умолчанию то решение как действовать будет приниматься на основе настроек слепков.
Доступные параметры:
Метрика и Аналитика. Пропускать или нет ботов в Гугл Аналитику и Яндекс Метрику. Стоит иметь в виду, что использование Гугл Аналитикс - это трансграничная передача данных, и для ее использование требуется уведомление РКН.
Доступные параметры:
Когда вы создали правило - оно просто создано и не применено ни к одному из скриптов Киллбот созданных в системе. Чтобы применить правило, нужно в нижней части интерфейса создания правила выбрать свой сайт, сохранить. Как альтернативный вариант - зайти в настройки скрипта, и выбрать его в разделе правил там.
Примеры ниже помогут вам разобраться более подробно, понять как это работает.
Один из самых показательных признаков - это host, к которому имени домена резолвится IP-адрес посетителя.
Если IP уходит, например, на *.amazonaws.com, digitalocean.com или другие облачные платформы, это почти всегда сервер, а не домашний пользователь.
Такие хосты часто используются либо для работы ботов, либо как выходные узлы VPN.
Если таких заходов много с одного диапазона, это почти точно бот-сеть. Если единичный визит — возможно, VPN.
|
1 2 3 4 5 |
if (strpos($data['net']['host'], 'amazon') !== false) { //Хост содержит подстроку 'amazon' return false; // Это бот (или VPN) — IP указывает на Amazon } return true; // Разрешаем остальных |
Следующее, что стоит проверить — это соответствие часового пояса (timezone) географическому положению IP-адреса:
Пользователь из России, у которого выставлен часовой пояс, например, UTC+0, вызывает подозрения.
Это может указывать на заход с сервера, где часовой пояс установлен по умолчанию, или бот это просто бот, который не подменяет системные настройки.
|
1 2 3 4 5 |
if ($data['user']['timezone'] == 'UTC' && $data['net']['country'] === 'RU') { return true; // Часовой пояс не соответствует России — подозрительно } return false; |
Язык браузера и локаль
Еще один важный индикатор — это язык браузера (navigator.language) и локаль:
Например, если часовой пояс России, а язык браузера — русский (ru-RU), а локаль английская, это не является стопроцентным индикатором, но для российского трафика это редкость - т.е. если много визитов с таким паттерном - то все их под капчу, например.
В совокупности с другими параметрами это усиливает подозрение, что трафик не живой.
|
1 2 3 4 |
if ( $data['user']['timezone'] === 'Europe/Moscow' && $data['browser']['language'] === 'ru-RU' && $data['user']['locale'] === 'en-US' ) { return true; // Подозрительное несоответствие языка и локали } return false; |
У обычного пользователя, будь то сотовый интернет или домашний Wi-Fi - внешний IP-адрес не имеет открытых портов: это значит что удаленно на компьютер пользователя не зайти и никакой внешний сайт на компьютере пользователя (роутере) не висит.
Если на IP-адресе открыты:
Такой IP может принадлежать VPN или серверу, с которого работает бот.
|
1 2 3 4 5 |
if (isset($data['net']['prots'][443]))) { //если в массиве портов $data['net']['prots'] есть порт 443 return true; // На IP открыты подозрительные порты — возможно, сервер или VPN } return false; |
TTL (Time To Live) - это параметр, содержащийся в каждом сетевом пакете, который определяет максимальное число маршрутизаторов (промежуточных серверов или IP), через которые этот пакет может пройти в интернете. Каждая операционная система устанавливает свой дефолтный (по умолчанию) TTL при отправке пакетов.
Когда пакет проходит через маршрутизатор, TTL уменьшается на 1. Таким образом, по значению TTL, которое пришло на сервер, можно приблизительно понять, какой была исходная операционная система.
Если мы знаем, что в заголовках запроса указано, что пользователь использует, например, Windows, но TTL у него 64, как у Linux, - это уже повод для подозрения. Такое несоответствие между User-Agent и TTL может указывать на:
TTL - не абсолютный признак, он может меняться в зависимости от сетевых условий, VPN и маршрутов. Но в связке с другими признаками (WebDriver, host, locale, WebRTC, и т.д.) TTL становится мощным индикатором нечестного трафика или бот-сетей.
|
1 2 3 4 5 6 |
if ($data['device']['os'] === 'Windows' && $data['net']['ttl'] < 100) { //OS=Windows и TTL<100 //Здесь мы предполагаем, что TTL < 100 — подозрительно для Windows. return true; } return false; |
WebDriver - это программный интерфейс, который позволяет управлять браузером извне, автоматически эмулируя действия пользователя: клики, переходы, ввод текста и т.д. Он используется в инструментах автоматизации, таких как:
Если KillBot зафиксировал этот параметр, это означает, что:
Если webdriver==true - это 100% бот, визит может быть реальным только если администратор тестирует свою бот программу.
|
1 2 3 4 5 |
if ($data['browser']['webdriver'] == true ) { //точно бот return true; } return false; |
Wl - это параметр Килбота. Он может принимать два значения:
Если wl = false, то, по умолчанию, KillBot считает такие визиты ботами. Если таких визитов много в трафике сайта - это 100% боты, если таких визитов в реальном трафике менее 5% - то тут могут быть и живые пользователи.
|
1 2 3 4 5 |
if ($data['killbot']['wl'] = true) { //слепка браузера визита нет в системном списке браузеров return true; } return false; |
Есть провайдеры, через которых прогоняется только бот трафик, например Biterika. ASN таких и подобных имеет смысл сразу заблокировать.
|
1 2 3 4 5 |
if (in_array($data['net']['asn'],array("35048","208969","214574") ) ){ //Если значение ASN совпадает с одним из значений, то сразу расцениваем как БОТ return true; } return false; |
Зачастую не нужно блокировать весь трафик по слепку, а нужно ограничить только прямые заходы.
|
1 2 3 4 5 |
if ($data['killbot']['snsht'] == 3933974590 && $data['request']['referer'] == "") { //Если слепок браузера равен 3933974590 и заход прямой (т.е. реферер пуст), то расцениваем такой заход как бот return true; } return false; |
Зачастую нужно пропускать трафик с определенными метками в URL.
|
1 2 3 4 5 |
if (stripos($data['request']['url'], 'from=seo') !==false ){ //если url содержит строку 'from=seo', то расцениваем визит как настоящего пользователя, т.е. применяем правило return true; } return false; |
Killbot - это активно развивающаяся система фильтрации бот трафика, идущая в ногу со временем. Правила фильтрации сейчас пишет ИИ, в автоматическом режиме, поэтому среднестатистическому пользователю системы достаточно всё запустить и произвести первоначальную настройку, дальше антибот будет работать сам, и всегда будет находиться в актуальном состоянии.
Если же вам нужно понимать, как что работает, лично контролировать процесс, то на основе примеров выше и изучения параметров, которые Killbot передает в JSON - вы сможете гибко настраивать все необходимое именно под свои задачи.
Cloudflare окончательно заблокирован в РФ ещё летом 2025 года.
Функцию фильтрации ботов Cloudflare взял на себя российский антибот Killbot.
Принцип работы отличается от привычного, отслеживаются не знакомые всем при настройке других антибот решений параметры (входящие IP адреса, AS подсети ботов, User Agent и прочее, всё это легко подделывается), а уникальные для каждого набора браузеров слепки.
По отличию оригинального браузера от модифицированного, тот или иной заход определяется либо как заход реального посетителя, либо как заход бота.
Чтобы не повторяться - расписывал более подробно в статьях:
Попробовать бесплатно. При регистрации в Killbot введите промокод
promo13
и получите месяц тестирования платного тарифа Killbot (фильтрация трафика, 1000 руб) и Ads (отключение показа рекламы поведенческим ботам, 1000 руб) в качестве бонуса. Этого вам хватит на то, чтобы понять, подходит вам данное решение, или нет. На данный момент - в Рунете нет более достойной альтернативы, по соотношению цена-качество. Срок действия промокода ограничен по времени, куда-то записывать его нет смысла. В следующий раз промокод уже будет другой, поэтому использовать его нужно сейчас, когда вы читаете этот текст. Промокод действует только в форме регистрации. Если аккаунт уже создан - создайте новый, на другой почте, и при регистрации в последнем поле введите промокод.
Подпишитесь на Telegram канал / MAX для того, чтобы всегда быть в курсе последних новостей и обновленных настроек для защиты от ботов, а также оперативно получать новые материалы, выходящие на antibot24.ru

Автор статей: Сергей (AntiBot24). Эксперт в области фильтрации поведенческого трафика, настройки антибот систем. Высший рейтинг на Kwork, более 680 отзывов, 100% заказов успешно сдано, 56% повторных заказов. Пишу подробные статьи, инструкции по фильтрации ботов в своем блоге antibot24.ru
Всегда нужно иметь в виду, что те советы, которые вы прочли в статьях - это лишь часть настроек, которые я делаю при профессиональной экспертной настройке фильтрации поведенческих ботов. Все остальное - это непубличные профессиональные секреты. Любая информация, становящаяся общедоступной - достаточно быстро устаревает и перестает быть эффективной.
Если вы столкнулись с повышенной роботностью в Яндекс метрике, увеличением числа прямых заходов, увеличением количества отказов - вы всегда можете заказать у меня настройку Killbot.