Пользовательские правила

Пользовательские правила — инструмент, с помощью которого вы можете гибко настроить защиту под свои нужды. Доступны четыре группы правил:

Они дополняют друг друга и позволяют настроить разные аспекты защиты.

Сравнение групп правил

Группа правил Что позволяет настроить Пример правила Может блокировать трафик Когда использовать

Лимиты запросов

Частоту обращений: сколько запросов один IP может отправить к указанному URI за заданное время. Если IP превысил лимит, система на время блокирует его.

Лимит 10 запросов к /reports/generate за 5 минут с одного IP. При превышении блокировка на 5 минут.

Да, при превышении лимита

Уберечь эндпоинты от перегрузки

Защититься от эксплуатации бизнес-логики

Правила защиты

Реакцию системы: что сделать с запросом, который соответствует условиям правила: пропустить его, заблокировать, выдать JS-челлендж, выдать cookie-челлендж или выдать CAPTCHA

Если к /reports/generate обращается:

  • человек — пропустить;

  • вероятно человек — выдать JS-челлендж;

  • вероятно бот — выдать CAPTCHA;

  • бот — заблокировать.

Да, если вы указали действие «заблокировать»

Задать реакцию системы защиты для конкретного сценария

Сбор JS score

Дополнительную проверку пользователя: указанному трафику система выдаст дополнительный JS-челлендж и рассчитает bot score пользователя.

Если пользователь отправил запрос к /reports/generate, выдать ему JS-челлендж и рассчитать bot score

Нет*

Увеличить точность фильтрации для конкретных сценариев

Классификация ботов

Жёсткость фильтрации: каков для указанного трафика порог bot score — минимальное значение bot score, набрав которое источник запроса попадает в категорию «бот».

Если пользователь обращается к /reports/generate и его bot score 0.4 или выше, считать его ботом.

Нет*

Задать жёсткость фильтрации для разных типов трафика

*«Сбор JS score» и «Классификация ботов» сами не блокируют трафик, но косвенно влияют на блокировку. Если bot score источника достиг порогового значения или превысил его, такой источник считается ботом, а в режиме защиты «Антибот» система по умолчанию блокирует запросы от ботов.

Список исключений

В режиме защиты «Антибот» система по умолчанию блокирует запросы от источников класса «бот». Исключения:

  • Запросы от IP-адресов из белого списка — они всегда пропускаются.

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

  • Запросы, которые попали под созданное вами правило защиты. В настройках правила вы сами указываете, что делать с такими запросами — пропускать, блокировать, выдавать cookie-челлендж, выдавать JS-челлендж или выдавать CAPTCHA.

  • Трафик, который мы «обелили» по вашей просьбе (например, это может быть трафик вашего мобильного приложения) — такие запросы всегда пропускаются, если их не запрещают ваши другие приоритетные настройки: чёрный список, геоограничения, лимиты запросов или правила защиты.

Как группы правил работают вместе

Предположим, у вас есть страница /reports/generate, где пользователи формируют сложные отчёты. Эта операция требует много вычислительных ресурсов. Вы хотите защититься от:

  • людей, которые отправляют аномально много запросов и рискуют перегрузить вашу систему;

  • ботов, которые парсят информацию.

Вы настраиваете такие правила:

  • Лимиты запросов: не больше 10 запросов за 5 минут с одного IP к /reports/generate. При превышении блокировка на 5 минут.

  • Сбор JS score: собирать bot score на странице /reports/generate.

  • Классификация ботов: для /reports/generate порог bot score — 0.4.

  • Правила защиты: при обращении к /reports/generate запросы от людей пропускать, а на запросы ботов в ответ выдавать CAPTCHA.

Когда придёт запрос к /reports/generate, защита будет работать так:

  1. Проверит, отправлял ли этот IP раньше запросы на отчёты. Если он превысил лимит 10 запросов за 5 минут, то будет заблокирован. Если нет, его запрос будет допущен на следующий шаг фильтрации.

  2. В ответ на запрос выдаст JS-челлендж. Если пользователь не сможет его пройти, то будет считаться ботом. Его сможет, система рассчитает его bot score.

    Исключение: если пользователь недавно уже проходил такой челлендж, система рассчитала и запомнила его bot score. Проходить челлендж снова не придётся.
  3. Если bot score пользователя 0–0.3, система пометит его как человека, если 0.4 и выше — как бота.

  4. Запросы от людей будут пропущены на ваши серверы, а боты в ответ на свой запрос получат CAPTCHA.

  5. Если пользователь получил CAPTCHA, его запрос будет пропущен, только если он успешно пройдёт тест и совокупность признаков (поведение при прохождении, данные клиентского окружения и другие) будет указывать, что капчу решал человек.

Результат: боты заблокированы, а люди могут свободно формировать отчёты — при условии, что не присылают запросы слишком часто.

Где находятся пользовательские правила в UI

Перейдите в раздел Защита приложений → Ресурсы.

Переход в раздел Ресурсы

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

Контекстное меню ресурса

Внутри раздела выберите вкладку с нужной группой правил.

Некоторые группы правил подключаются по запросу. Если какие-то вкладки неактивны, напишите в поддержку — откроем их для вас.
Табы с типами правил