Почему визит в Метрике есть, а в Килботе нет?

Если на сайте установлен KillBot в режиме DNS-экрана, то существует только один способ попасть на сайт без прохождения через KillBot (то есть без показа пользователю страницы Экрана KillBot): бот должен знать реальный IP-адрес сервера сайта и обратиться к нему напрямую, минуя DNS.

При обычном обращении к домену DNS возвращает IP-адрес сервера KillBot, и посетитель сначала попадает на KillBot. Но если реальный IP сервера сайта известен, к нему можно попробовать обратиться напрямую.

Пример обхода KillBot через curl

Например, если:

  • domain.ru — защищаемый сайт;
  • 1.2.3.4 — реальный IP-адрес сервера сайта.

То обратиться непосредственно к серверу сайта можно с помощью curl:

curl --resolve domain.ru:443:1.2.3.4 https://domain.ru/

В этом случае curl подключится к IP 1.2.3.4, но передаст имя хоста domain.ru. Таким образом запрос попадёт непосредственно на сервер сайта, минуя DNS KillBot.

Как полностью закрыть такой обход

Чтобы защититься от прямого доступа к серверу сайта, необходимо разрешить входящие HTTP/HTTPS-запросы только с IP-адресов серверов KillBot.

Поскольку сайт работает за DNS-экраном KillBot, все обычные легальные запросы к сайту всё равно будут приходить через сервер KillBot. Поэтому прямой доступ к origin-серверу можно закрыть.

Например, для Apache это можно сделать через файл .htaccess:

Order deny,allow
Deny from all
Allow from 31.192.108.184
Allow from 82.148.21.137

IP-адреса в примере необходимо заменить на IP-адреса серверов KillBot, к которым подключён ваш сайт.

ВНИМАНИЕ! Эти директивы могут конфликтовать с другими правилами в вашем .htaccess. Если после добавления правил сайт перестал открываться или появилась ошибка 403, необходимо проверить существующую конфигурацию .htaccess и порядок применения правил.

Для Apache 2.4 также может использоваться современный синтаксис:

Require ip 31.192.108.184
Require ip 82.148.21.137

Если на сервере используется Nginx, аналогичное ограничение можно сделать непосредственно в его конфигурации:

allow 31.192.108.184;
allow 82.148.21.137;
deny all;

Как проверить, закрыт ли прямой доступ к сайту

KillBot автоматически проверяет возможность обращения к серверу сайта напрямую.

Если доступ к серверу сайта возможен только через KillBot, то в колонке «Состояние» в KillBot будет указано, что доступ к сайту вне сервера KillBot запрещён.

Надпись в колонке состояния о том, что доступ к сайту вне KillBot запрещён

Можно ли попасть на сайт без показа Экрана KillBot?

Если прямой доступ к серверу сайта закрыт, то во всех остальных случаях Экран KillBot будет показан.

Исключения возможны только в том случае, если показ Экрана KillBot специально отключён настройками, например:

  • для определённого IP-адреса;
  • для определённого User-Agent;
  • для определённого URL или пути;
  • другим правилом в настройках KillBot.

Если таких исключений нет и прямой доступ к серверу закрыт, попасть на защищённый сайт в обход Экрана KillBot невозможно.

Что делать, если в Метрике появился визит без параметров KillBot

Если вы видите визит в Яндекс Метрике без параметров посетителя KillBot, необходимо определить, откуда пришёл этот визит и почему параметры KillBot для него отсутствуют.

Возможны следующие варианты:

  1. Метрика была скрыта для этого визита настройками слепков.

    ВНИМАНИЕ! Килбот скрывает метрику ТОЛЬКО на странице Экрана KillBot. Если пользователь(бот) пройдет Экран, то его подхватит метрика сайта. Килбот к сайту доступа не имеет и если пользователь на сайте, то там уже будут работать все скрипты сайта.
    Если Килбот скрыл метрику (Например, ИИ KillBot может автоматически скрывать Метрику для определённых слепков), то таком случае KillBot также не сможет передать в неё параметры посетителя (параметры посетителя в метрику передаются именно на Экране KillBot). Это один из наиболее вероятных вариантов.

  2. Визит пришёл напрямую на сервер сайта, минуя KillBot.

    В этом случае необходимо закрыть прямой доступ к серверу и разрешить обращения только с IP-адресов серверов KillBot, как описано выше.

  3. Визит пришёл на поддомен или другой домен, где KillBot не подключён.

    Например, KillBot может быть подключён к domain.ru, но не подключён к shop.domain.ru или another-domain.ru В этом случае посещение поддомена не будет проходить через KillBot. Т.е. внимательно смотрите какому домену принадлежит визит Килбота в Вебвизоре.

Как сопоставить визит в KillBot с визитом в Метрике или заявкой

Есть несколько способов найти в KillBot конкретного посетителя, которого вы видите в Метрике, CRM или полученной заявке.

Способ 1. Поиск по IP-адресу

Самый простой вариант — взять IP-адрес посетителя и найти его в KillBot в разделе «Визиты» с помощью поиска по IP.

Способ 2. Поиск по времени визита

Если IP-адрес посетителя неизвестен, можно попробовать сопоставить визиты по времени. Этот способ особенно удобен для сайтов с небольшим количеством трафика.

Обратите внимание: время визитов в KillBot отображается по московскому времени.

Способ 3. Передача номера сессии KillBot через URL

Это наиболее точный способ сопоставления визита.

KillBot может автоматически добавлять номер своей сессии в URL страницы. Тогда этот номер будет виден в Метрике, и по нему можно точно найти соответствующий визит в KillBot.

Для этого в настройках KillBot откройте раздел:

«▼ Группы браузеров, ботов и ПРАВИЛА ▼»

и добавьте параметр is_bot для передачи номера сессии через URL.

Настройка передачи номера сессии KillBot в URL

После этого в Метрике в качестве страницы входа будет отображаться URL с номером сессии KillBot, например:

https://domain.ru/?sess=17883186178604992

Здесь:

sess=17883186178604992

— это номер сессии KillBot.

Скопируйте этот номер и вставьте его в поиск на странице визитов KillBot. Так можно найти конкретный визит и посмотреть всю собранную по нему информацию.

Поиск визита в KillBot по номеру сессии

Итого

Если KillBot используется как DNS-экран, рекомендуется закрыть прямой доступ к origin-серверу сайта и разрешить HTTP/HTTPS-запросы только с IP-адресов серверов KillBot.

После этого посетитель не сможет обратиться к сайту напрямую по реальному IP и обойти DNS-экран KillBot.

А если необходимо точно сопоставлять посетителей KillBot с визитами в Метрике или заявками, удобнее всего включить передачу номера сессии KillBot через параметр sess в URL.