В этой статье описывается рекомендуемый порядок первичной настройки услуги защиты от ботов от Curator.
- Настройте правила обработки запросов
- Добавьте исключения для доверенных посетителей
- Протестируйте защиту от ботов
- Поэтапно включите защиту для всех пользователей
Чек-лист для подключения защиты от ботов
В результате настройки у вас должны быть выполнены следующие условия:
-
в разделе Bot protection → Локации:
- активирована опция Включено,
- заданы правила обработки запросов,
-
в разделе Bot protection → Посетители:
- активирована опция Включено,
- настройка A/B Распределение проверок установлена в 100%.
1. Задайте правила обработки запросов
В разделе Bot protection → Локации задайте правила обработки запросов, исходя из структуры вашего ресурса. Правила описывают, как следует обрабатывать каждый запрос в зависимости от его HTTP-метода, хоста и пути. Один из возможных наборов правил описан в примере конфигурации.
Также в разделе Bot protection → Локации активируйте опцию Включено
.
2. Добавьте исключения для доверенных посетителей
С помощью настроек в разделе Bot protection → Посетители опишите признаки пользователей, которых следует считать легитимными без проверки.
К таким пользователям вы можете отнести:
- пользователей с определённым HTTP-заголовком,
- пользователей из определённых стран,
- пользователей из определённых подсетей.
Также в разделе Bot protection → Посетители активируйте опцию Включено
.
3. Протестируйте защиту от ботов
Примечание
Перед тестированием убедитесь, что в разделах Bot protection → Локации и Bot protection → Посетители активированы опции Включено, а в список для принудительной проверки внесены IP-адреса, с которых вы собираетесь выполнять запросы в рамках тестирования.
Протестируйте защиту от ботов с ограниченного количества устройств, чтобы выявить возможные ошибки в правилах, не включая её для всех пользователей. Для этого включите принудительные проверки для одного или нескольких IP-адресов и выполните запросы с этих IP-адресов. Проверьте, что защита блокирует запросы от ботов, но не блокирует запросы от настоящих пользователей.
Для тестирования рекомендуется использовать браузеры (например, Google Chrome) и консольные утилиты (например, curl).
Ниже приведены несколько возможных наборов сценариев для тестирования доступа к ресурсу.
Пример: доступ к веб-страницам
Этот набор сценариев предназначен для веб-страниц, которые должны быть доступны браузерам, но не ботам.
-
С помощью браузера посетите страницу. Страница должна открыться корректно, а браузер должен получить cookie с названием
curator_jsid
. -
С помощью консольной утилиты обратитесь к странице несколько раз. Каждый раз утилита должна получать ответ со статусом 401 Unauthorized. Данные обо всех запросах, кроме первого, должны появиться в разделе Bot protection → Сводка.
-
С помощью консольной утилиты обратитесь к странице, предоставив в запросе заголовки, для которых настроены исключения по заголовку. Утилита должна получить содержимое от апстрима без ошибок.
Если защита работает некорректно:
-
убедитесь, что в правилах обработки запросов для соответствующих условий заданы правила с действием Принять и Выдать Проверку;
-
убедитесь, что IP-адрес, с которого выполняется тестирование, добавлен в список для принудительных проверок и не добавлен в списки исключений IP и подсетей;
-
если настройки защиты от ботов изменены недавно, то подождите несколько минут для их применения.
Пример: доступ к защищённым API-эндпоинтам
Этот набор сценариев предназначен для API-эндпоинтов, обращение к которым должно быть доступно только пользователям, ранее получившим трекинговую cookie на одной из веб-страниц.
-
С помощью браузера посетите любую страницу, для которой действует правило с действием Принять и Выдать Проверку. Браузер должен получить cookie с названием
curator_jsid
. После этого обратитесь к API-эндпоинту, для которого действует правило Принять Только с Куки. Запрос к API-эндпоинту должен выполниться успешно. -
После предыдущего теста удалите cookie с названием
curator_jsid
в браузере и обратитесь к API-эндпоинту повторно. Браузер должен получить ответ 403 Forbidden. Данные об этом запросе должны появиться в разделе Bot protection → Сводка. -
С помощью консольной утилиты обратитесь к API-эндпоинту. Утилита должна получить ответ со статусом 403 Forbidden. Данные об этом запросе должны появиться в разделе Bot protection → Сводка.
-
С помощью консольной утилиты обратитесь к API-эндпоинту, предоставив в запросе заголовки, для которых настроены исключения по заголовку. Утилита должна получить содержимое от апстрима без ошибок.
Если защита работает некорректно:
-
убедитесь, что в правилах обработки запросов веб-страница подпадает под условия для действия Принять и Выдать Проверку, а API-эндпоинты подпадают под условия для действия Принять Только с Куки;
-
убедитесь, что IP-адрес, с которого выполняется тестирование, добавлен в список для принудительных проверок и не добавлен в списки исключений IP и подсетей;
-
если настройки защиты от ботов изменены недавно, то подождите несколько минут для их применения.
Пример: доступ к незащищённым API-эндпоинтам
Этот сценарий предназначен для API-эндпоинтов, обращение к которым должно быть доступно любым пользователям, включая ботов.
- С помощью консольной утилиты обратитесь к API-эндпоинту. Утилита должна получить содержимое от апстрима без ошибок.
Если защита работает некорректно:
-
убедитесь, что в правилах обработки запросов для соответствующих условий заданы правила с действием Не реагировать;
-
убедитесь, что IP-адрес, с которого выполняется тестирование, добавлен в список для принудительных проверок и не добавлен в списки исключений IP и подсетей;
-
если настройки защиты от ботов изменены недавно, то подождите несколько минут для их применения.
4. Поэтапно включите защиту для всех пользователей
Включение защиты от ботов для сайта рекомендуется производить в несколько этапов, постепенно повышая процент пользователей, трафик от которых будет проверяться. Такой подход позволяет минимизировать ущерб от возможных ошибок в конфигурации.
Для поэтапного включения защиты используйте настройку A/B Распределение проверок. Например, вы можете начать с включения защиты от ботов для 5% пользователей и повышать это значение ещё на 5% каждые несколько минут. Обратите внимание, что сохранение каждого изменения настроек может занимать 5–7 минут.
После каждого изменения настроек отслеживайте изменения на графиках Трафик и Bot protection в разделе Статистика. Чаще всего равномерному повышению доли проверяемого трафика соответствует равномерное повышение количества выявленных ботов и равномерное снижение легитимного трафика. Однако возможны отклонения от этого паттерна — как из-за случайного попадания под проверку больших сетей ботов, так и из-за ошибочных блокировок легитимных пользователей.
Если вы наблюдаете резкие изменения на графиках, проанализируйте более подробные данные в разделе Bot protection → Сводка, чтобы установить их причину. При ложноположительных срабатываниях рекомендуется временно отключить защиту от ботов, вернув настройку A/B Распределение проверок в значение 0%, исправить настройки в разделах Bot protection → Локации и Bot protection → Посетители и приступить к поэтапному включению заново.
Если ложноположительных срабатываний не обнаружено, продолжайте постепенно повышать значение A/B Распределение проверок вплоть до 100%.