Как KillBot обрабатывает ботов: капча, нагрузка CPU и блокировка

По умолчанию KillBot не блокирует трафик (может быть только показана капча): все посетители анализируются и пропускается на сайт без ограничений. Однако, вы самостоятельно можете настроить, как реагировать на трафик, который система определяет как ботовский.

Гибкая настройка реакции на ботов

ВНИМАНИЕ! Капча в килботе показывается один раз на UserID. Т.е. если один раз капчу решили, то второй раз капча показана не будет. (только если не выставлена настройка "показать капчу-слайдер всем")

Для каждого «слепка» браузера (уникального идентификатора софта, по которому определяется бот или пользователь) можно задать индивидуальное правило обработки:

  • Показать капчу-слайдер — хороший вариант, если я хочу проверить кто за слепком: боты или пользователи. Тут нужно смотреть на  запись визитов в Вебвизоре глазами и быть уверенным что боты капчу не решают.
    Как выглядит капча-слайдер: 

    капча слайдер килбота

     

  • Заблокировать — полностью запретить доступ к сайту для определённого слепка - хороший вариант если за слепком 100% боты.

  • Зациклить — загрузить CPU бота - это если нужно чтобы администатор бот программы исключил бы ваш сайт из накрутки.

  • Скрыть аналитику — Цель бота: засветится в метрике (для истории посещений, чтобы обойти антифрод), если он в неё не попадёт, то может и сам отвалится. ВНИМАНИЕ! при блокировании визита или зацикливании сначала срабатывает метрика, а потом уже блок. Поэтому чтобы заблокированных визитов не было бы в метрике - для них нужно еще выставить опцию скрыия метрики.

  • Пропускать — не предпринимать никаких действий и разрешить доступ.

Для сайта можно комбинировать эти методы: например, если у вас есть пять слепков, из которых два определены как боты, то одному  слепку можно показать капчу, другой - зациклить, а пользователи попадут на сайт без ограничений.

Работа с поисковыми ботами

Для случая ДНС Экрана поисковые боты пропускаются и им Экран KillBot не показывается - они заходят на сайт без каких либо ограничений - Килбота они не видят.

Для JS интеграции поисковые боты могут выделится в отдельные слепки. По умолчанию капча им показана не будет (даже если у вас выставлено "показать капчу всем"). Но, если вы вручную слепку поискового бота решите показать капчу поисковому боту или заблокировать, то это будет сделано.
 

И так, ДНС Экран килбот поисковых ботов не зафиксирует - они пропускаются мимо экрана. А для JS интеграции поисковые боты (которые выполняют яваскрипт) попадут в слепки - и тут будьте внимательны чтобы их НЕ заблокировать

 

Индивидуальная обработка заходов ботов средствами JS.

В ряде случаев на пользователя или на бота нужно выполнить свой уникальный Яваскрипт например, чтобы цель в метрике срабатывала только на заходы пользователей и не срабатывала бы на заходы ботов.

Если у вас JS интеграция, то прямо в JS коде Килбота вы можете вписать свой JS в специальную функцию в скрипте килбот:

вставка своего JS кода на бота

Ниже пример функции, которая на пользователя выполняет событие метрики, а на бота - бесконечный редирект:

async function kbBeforeFinish(isBot) {
    if (isBot==false){ 
        // если пользователь, то выполняем цель метрики
        ym(44500875,'reachGoal','KB_RED'); 
    } 
    if (isBot==true){ 
        // если бот, то выполняем вечный редирект 
        location.href='/'; 
    } 
} 
 

Если у вас ДНС интеграция, то свой JS код можно так же интегрировать в экран килбота, НО только если у вас развёрнут свой килбот сервер. На своем сервере свой JS код можно добавить в php файле страницы верификации тут: /opt/killbot/html/verification.php

Индивидуальные блокировки ботов по слепкам

В килботе можно разные слепки обрабатывать по разному. И, ВАЖНО, не заблокировать реальных пользователей (и поисковых ботов - если у вас JS интеграция). Нажмите на ссылку "Слепки", это основной раздел килбота для анализа трафика:
 

раздел СЛЕПКИ в интерфейсе килбота

Тип слепка, кому он принадлежит - подписан в левой колонке, если надпись зеленая, значит слепок захода есть в системной группе слепков настоящих браузеров. Если подпись красная, значит в слепке с большой долей вероятности есть или могут быть боты. Варианты действий на слепок - в правой колонке "Действия":

пример слепков браузера и боты в интефейсе килбота + действия на них

Если вы хотите заблокировать или зациклить слепок, то обязательно убедитесь:

  • Что слепок не принадлежит поисковому боты - прямо прочитайте надпись под слепком. Как обозначается бот Гугл ниже на скриншоте: пример слепка бота
  • Убедитесь что за слепком нет реальных пользователей. Для этого нужно посмотреть сколько раз был решена капча - это колонка "Капт.". По умолчанию, капча показывается только ботам, поэтому если в колонке "Капт.=0", то нужно убедится что настройки скрипта показывают капчу именно этому слепку. Чтобы проверить как именно сайт реагирует на визит с указанным слепком нужно нажать на ссылку "Тест":нажмите тест чтобы увидеть как сайт реагирует на слепок

     

  • На скриншоте ниже пример слепка ботов, но из 251 визита капча была решена 4 раза, т.е. блокировать такой слепок я бы не стал:какой слепок блокировать не надо

     

  • Убедитесь, что число визитов по слепку достаточно: хотя-бы больше 10-ти. Если по слепку всего 3 визита, то этого может быть не достаточно для принятия решения кто за слепком: пользователи или боты. ВАЖНО визиты по слепкам - это НЕ визиты от одного пользователя - это визиты от софта: я использую хром и мой друг из Китая использует хром - мы с ним используем один и тот же браузер, т.е. у нас будут одинаковые слепки. Т.е. слепки с небольшим количеством визитов я бы не блокировал:слепки с небольшим числом визитов блокировать не нужно

     

  • Ниже пример слепков которые можно циклить: визитов много, решений капчи нет, слепка нет в известных группах или слепок в группе ботов: 
  • пример слепков визитов которые можно блокировать

     

  • Ниже пример того, как делать НЕ надо - все "зеленые" системные слепки добавлены в боты и заблокированы, не делайте так, иначе реальный пользователь, включая вас, на сайт не попадёт: какие слепки нельзя блокировать Единичные "зеленые" слепки могут содержать ботов, но НЕ массово.

Как обрабатывать ботов которые вырезают JS код килбота

Если бот вырезал JS код килбота (бот тупо *.js файлы не загружает для ускорения своей работы), то в метрике для таких заходов не будет параметров посетителей или будет UserID = 0.

Если параметры посетителя для бота не приходят в метрику, то интеграцию через JS файл килбота нужно убрать. Взамен нужно поместить JS код килбота прямо в тело сайта body - предварительно нужно выставить галочку "сайт на конструкторе", чтобы код килбот был обрамлен тегами script и его можно было вставить в body "под ключ". После этого килбот сможет отправить в метрику данные о том, что код килбота вырезан и UserID=0.

Обрабатывать такие заходы через интерфейс сайта killbot.ru нельзя (так как визит до сервера килбота не доходят - вырезан его код). Реакцию на такие визиты можно настроить в самом JS коде килбота, за это отвечают следующие параметры:

 

параметры блокировки бота средствами JS

Измените один из этих параметров на true, в зависимости от того, что хотите сделать:

  • var kbSircleIsCut=true; - Зациклить бота, который вырезал код.
  • var kbSliderIsCut=true; - Показать слайдер боту, который вырезал код.
  • var kbHideMetrIsCut=true; - Скрыть метрику от бота, который вырезал код.

Теоретически, код килбота может выпилить и какое браузерное расширение, или CPU у пользователя загружен и браузер тупит и недогрузил чего. Но практически очень маловероятно то, что реальный браузер не загрузит код килбота. Для реальных пользователей этого не характерно и при анализе реального трафика таких событий сейчас нет.

Какие есть еще возможности по работе с JS килбота?

  1. Наличие впн (vpn в параметрах посетителя) проверяется по налючию доступа к запрещенному Роскомнадзору сайту: https://www.instagram.com/favicon.ico . Можно задать свой сайт в параметре kbVPNCheckWebsite
  2. Надпись о предложении пройти капчу - это картинка, её можно поменять задав URL адрес в переменную: kbImageURL, например: kbImageURL="https://data.killbot.ru/r/enter_ru.png"; По умолчанию подставляется url картинки с текстом, в зависимости от языка браузера.
  3. В функцию kbBeforeFinish(isBot,kbRes=null), при первом запуске, все параметры килбота доступны в переменной kbRes - тут все параметры, которые отправляются в параметры посетителя. Т.е. kbRes доступен только при первом просмотре, при втором и последующем просмотрах страниц kbRes = null;