Подключение: Защита от ботов

В этой статье описывается рекомендуемый порядок первичной настройки услуги защиты от ботов от Qrator Labs.

  1. Настройте правила обработки запросов
  2. Добавьте исключения для доверенных посетителей
  3. Протестируйте защиту от ботов
  4. Поэтапно включите защиту для всех пользователей

Чек-лист для подключения защиты от ботов

В результате настройки у вас должны быть выполнены следующие условия:

  • в разделе Bot protection → Локации:

    • активирована опция Включено,
    • заданы правила обработки запросов,
  • в разделе Bot protection → Посетители:

    • активирована опция Включено,
    • настройка A/B Распределение проверок установлена в 100%.

1. Задайте правила обработки запросов

В разделе Bot protectionЛокации задайте правила обработки запросов, исходя из структуры вашего ресурса. Правила описывают, как следует обрабатывать каждый запрос в зависимости от его HTTP-метода, хоста и пути. Один из возможных наборов правил описан в примере конфигурации.

Также в разделе Bot protectionЛокации активируйте опцию Включено.

2. Добавьте исключения для доверенных посетителей

С помощью настроек в разделе Bot protectionПосетители опишите признаки пользователей, которых следует считать легитимными без проверки.

К таким пользователям вы можете отнести:

Также в разделе Bot protectionПосетители активируйте опцию Включено.

3. Протестируйте защиту от ботов

Примечание

Перед тестированием убедитесь, что в разделах Bot protection → Локации и Bot protection → Посетители активированы опции Включено, а в список для принудительной проверки внесены IP-адреса, с которых вы собираетесь выполнять запросы в рамках тестирования.

Протестируйте защиту от ботов с ограниченного количества устройств, чтобы выявить возможные ошибки в правилах, не включая её для всех пользователей. Для этого включите принудительные проверки для одного или нескольких IP-адресов и выполните запросы с этих IP-адресов. Проверьте, что защита блокирует запросы от ботов, но не блокирует запросы от настоящих пользователей.

Для тестирования рекомендуется использовать браузеры (например, Google Chrome) и консольные утилиты (например, curl).

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

Пример: доступ к веб-страницам

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

  • С помощью браузера посетите страницу. Страница должна открыться корректно, а браузер должен получить cookie с названием qrator_jsid.

  • С помощью консольной утилиты обратитесь к странице несколько раз. Каждый раз утилита должна получать ответ со статусом 401 Unauthorized. Данные обо всех запросах, кроме первого, должны появиться в разделе Bot protection → Сводка.

  • С помощью консольной утилиты обратитесь к странице, предоставив в запросе заголовки, для которых настроены исключения по заголовку. Утилита должна получить содержимое от апстрима без ошибок.

Если защита работает некорректно:

Пример: доступ к защищённым API-эндпоинтам

Этот набор сценариев предназначен для API-эндпоинтов, обращение к которым должно быть доступно только пользователям, ранее получившим трекинговую cookie на одной из веб-страниц.

  • С помощью браузера посетите любую страницу, для которой действует правило с действием Принять и Выдать Проверку. Браузер должен получить cookie с названием qrator_jsid. После этого обратитесь к API-эндпоинту, для которого действует правило Принять Только с Куки. Запрос к API-эндпоинту должен выполниться успешно.

  • После предыдущего теста удалите cookie с названием qrator_jsid в браузере и обратитесь к API-эндпоинту повторно. Браузер должен получить ответ 403 Forbidden. Данные об этом запросе должны появиться в разделе Bot protection → Сводка.

  • С помощью консольной утилиты обратитесь к API-эндпоинту. Утилита должна получить ответ со статусом 403 Forbidden. Данные об этом запросе должны появиться в разделе Bot protection → Сводка.

  • С помощью консольной утилиты обратитесь к API-эндпоинту, предоставив в запросе заголовки, для которых настроены исключения по заголовку. Утилита должна получить содержимое от апстрима без ошибок.

Если защита работает некорректно:

  • убедитесь, что в правилах обработки запросов веб-страница подпадает под условия для действия Принять и Выдать Проверку, а API-эндпоинты подпадают под условия для действия Принять Только с Куки;

  • убедитесь, что IP-адрес, с которого выполняется тестирование, добавлен в список для принудительных проверок и не добавлен в списки исключений IP и подсетей;

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

Пример: доступ к незащищённым API-эндпоинтам

Этот сценарий предназначен для API-эндпоинтов, обращение к которым должно быть доступно любым пользователям, включая ботов.

  • С помощью консольной утилиты обратитесь к API-эндпоинту. Утилита должна получить содержимое от апстрима без ошибок.

Если защита работает некорректно:

4. Поэтапно включите защиту для всех пользователей

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

Для поэтапного включения защиты используйте настройку A/B Распределение проверок. Например, вы можете начать с включения защиты от ботов для 5% пользователей и повышать это значение ещё на 5% каждые несколько минут. Обратите внимание, что сохранение каждого изменения настроек может занимать 5–7 минут.

После каждого изменения настроек отслеживайте изменения на графиках Трафик и Bot protection в разделе Статистика. Чаще всего равномерному повышению доли проверяемого трафика соответствует равномерное повышение количества выявленных ботов и равномерное снижение легитимного трафика. Однако возможны отклонения от этого паттерна — как из-за случайного попадания под проверку больших сетей ботов, так и из-за ошибочных блокировок легитимных пользователей.

Если вы наблюдаете резкие изменения на графиках, проанализируйте более подробные данные в разделе Bot protection → Сводка, чтобы установить их причину. При ложноположительных срабатываниях рекомендуется временно отключить защиту от ботов, вернув настройку A/B Распределение проверок в значение 0%, исправить настройки в разделах Bot protection → Локации и Bot protection → Посетители и приступить к поэтапному включению заново.

Если ложноположительных срабатываний не обнаружено, продолжайте постепенно повышать значение A/B Распределение проверок вплоть до 100%.

expand_less