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

Как настроить собственные правила фильтрации для разных типов трафика.

Доступно только для режима защиты Антибот.

Функционал подключается по запросу. Если внутри Пользовательских правил в UI вкладка «Правила защиты» неактивна, напишите в поддержку — откроем её для вас.

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

О группе правил

Описание

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

Например, можно настроить подобные правила:

  • если запрос к разделу /admin пришёл не с вашего рабочего IP-адреса — заблокировать его;

  • если запрос к /signup отправил человек — пропустить его, а если вероятно человеком, вероятно ботом или ботом — выдать CAPTCHA;

  • если запрос содержит параметр запроса ?view=all, но пришёл без вашей секретной cookie — заблокировать его;

  • один IP может отправлять к /api/reports/export не больше 5 POST-запросов в минуту — запросы сверх лимита заблокировать.

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

Особенности

Правила проверяются по порядку

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

Пример

Вы создали три правила:

  1. Запросы из Индии — блокировать.

  2. Запросы из Казахстана — отдавать в ответ cookie-челлендж.

  3. Запросы к /login — отдавать в ответ JavaScript-челлендж.

Пришёл запрос из Казахстана к /login. Защита сначала проверяет, подходит ли он под первое правило. Ответ — нет. Потом проверяет второе правило. Ответ — да, подходит. Значит, клиенту будет отдан cookie-челлендж. Третье и последующие правила не проверяются.

В одном правиле можно задать разные действия для разных классов источника

Перед применением правила защита анализирует каждый запрос и присваивает его источнику один из классов: Человек, Вероятно человек, Вероятно бот или Бот. В рамках одного правила вы можете задать для каждого класса отдельную реакцию системы защиты.

Пример

Вы создали правило для запросов к /signup и настроили действия:

  • Бот — выдать CAPTCHA.

  • Вероятно бот — выдать JS-челлендж.

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

  • Человек — пропустить.

Пришёл запрос к /signup. Проанализировав технические и поведенческие признаки источника запроса, защита присвоила ему класс Вероятно бот. Затем, следуя вашему пользовательскому правилу, в ответ на запрос выдала JS-челлендж.

Правила защиты работают вместе с другими группами правил

В панели управления доступно четыре группы правил:

Их можно использовать вместе, чтобы точнее настроить фильтрацию для конкретных сценариев.

Пример

Для запросов к /reports/generate вы настроили:

  • Лимиты запросов — разрешить одному IP отправлять не больше 10 запросов за 5 минут.

  • Сбор JS score — выдавать JS-челлендж и рассчитывать bot score источника.

  • Классификацию ботов — считать источники с bot score 0.4 и выше ботами.

  • Правило защиты — запросы от людей пропускать, а ботам выдавать CAPTCHA.

Пришёл запрос к /reports/generate. Защита сначала проверяет, отправил ли этот IP больше 10 запросов за 5 минут. Если лимит превышен, IP временно блокируется. Если нет — система рассчитывает bot score и определяет класс источника. При bot score 0.4 или выше источник считается ботом и получает CAPTCHA.

Место в иерархии фильтрации

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

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

Рекомендации

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

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

  • Правила защиты проверяются по списку сверху вниз, и применяется первое подходящее правило. Если вы меняете их порядок, проверьте результат в Логах запросов: отфильтруйте записи по ID правила и убедитесь, что оно срабатывает в нужный момент.

  • Не выдавайте JS-челлендж источникам, которые не могут выполнить JavaScript. Такая проверка подходит для браузерных страниц, но не подходит для API, webhooks, мобильных приложений и запросов, которые ожидают JSON, файл или изображение.

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

  • Перед настройкой лимитов оцените по графикам в Логах запросов объём трафика, который подходит под условия правила. Учитывайте обычную частоту запросов и пиковые значения, чтобы лимит не мешал легитимному трафику.

Настройка

Открыть «Правила защиты»

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

Создать правило защиты

  1. Нажмите + Создать правило защиты. Откроется окно для создания правила, остальные шаги выполняйте в нём.

    Если система попросит выбрать тип правила, используйте Обычное правило. Именно его настройка описана в этой статье.

    Правило защиты API — отдельный функционал для защиты API-эндпоинтов от прямых обращений в обход веб-сайта. Подробнее о его настройке читайте в статье Правило защиты API.

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

  2. Задайте Позицию и Описание.

    Позиция определяет порядок правила в очереди. Нумерация начинается с нуля.

    По умолчанию новое правило падает в низ списка и получает следующую свободную позицию (+1). Вы можете отредактировать это поле, введя другое число.

    Описание — текстовый комментарий. По сути, это название правила, которое вы прописываете для себя. По названию будет легко найти нужное правило в списке.

    Примеры хорошего описания: Разрешить API для партнёра X, Защита формы входа от брутфорса.

    Настройка позиции и описания
  3. Настройте Условия.

    Можно задать три типа условий: по трафику, лимитам запросов и статусу DDoS-атаки. Правило будет применяться к запросам, которые одновременно соответствуют всем указанным условиям.

    Пример: вы задали условия по трафику Страна — Россия и Путь URL начинается с /login, а по лимиту запросов — После достижения лимита 100 запросов в минуту на один IP. Тогда правило:

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

    • Не сработает для пользователей из России, которые прислали к странице входа меньше 100 запросов за минуту. Не выполняется условие по лимиту запросов на один IP.

    • Не сработает, если на страницу авторизации пришёл запрос из Китая. Не выполняется условие Страна — Россия.

    • Не сработает, если запрос пришёл из России, но на главную страницу сайта. Не выполняется условие Путь URL начинается с /login.

    • Трафик

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

    • Статус DDoS-атаки

    Пример настроек для трафика

    Чтобы добавить условие, нажмите + Добавить условие, выберите параметр (например, Страна, Путь URL или Метод запроса), выберите оператор сравнения (например, начинается с) и укажите значение (например, /login).

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

    Описание работы с каждым параметром
    Название параметра Описание параметра Требования к значению Пример условия

    Страна

    Географическое местоположение IP источника

    Выберите значение из выпадающего списка

    Страна в Russian Federation

    Query string

    Параметры, которые указаны в URL после знака ?

    • Можно добавить до 100 значений в одно условие (используйте кнопку + Или).

    • Можно указать только ключ или пару «ключ-значение».

    • Длина строки — от 1 до 200 символов.

    • Не начинайте строку с пробела, символа / или ?.

    • Используйте только символы, допустимые для URL.

    • Указывайте специальные символы в формате percent-encoding. Например, вместо / укажите %2F.

    Query string содержит debug=true

    Путь URL

    Путь URL запроса (часть URL после домена и до знака ?)

    • Всегда начинайте строку с символа /.

    • Не указывайте доменное имя, например site.com.

    • Не указывайте протокол, например https://.

    • Не добавляйте параметры после знака ?.

    • Используйте только символы, допустимые для URL.

    Путь URL начинается с /admin

    Сегмент пути URL

    Любая часть пути URL

    • Можно добавить до 100 значений в одно условие (используйте кнопку + Или).

    • Длина значения — от 1 до 200 символов.

    • Можно указать любую часть пути: название раздела (api), расширение (.php) или даже набор символов из середины адреса (1/use).

    • Используйте только символы, допустимые для URL.

    Сегмент пути URL содержит backup

    Content-Type

    Формат передаваемых в запросе данных, например: JSON, обычный текст, изображения или данные из веб-форм

    • Можно добавить до 100 значений в одно условие (используйте кнопку + Или).

    • Длина значения — от 1 до 200 символов.

    • Не начинайте строку с пробела.

    • Укажите тип целиком или его часть.

    Content-Type равно application/json

    Cookie_any (или)

    Имена и значения cookie-файлов (правило сработает при наличии в запросе хотя бы одной из указанных связок «имя + значение»)

    • Можно добавить до 100 связок «имя + значение» в одно условие (используйте кнопку + Или).

    • Длина имени — до 200 символов.

    • Длина значения — до 4096 символов.

    Имя равно user_type

    Значение начинается с premium

    ИЛИ

    Имя равно partner_id

    Значение равно any

    Cookie_all (и)

    Имена и значения cookie-файлов (правило сработает при наличии в запросе всего набора указанных связок «имя + значение» одновременно)

    • Можно добавить до 100 связок «имя + значение» в одно условие (используйте кнопку + И).

    • Длина имени — до 200 символов.

    • Длина значения — до 4096 символов.

    Имя равно promo_code

    Значение равно active

    И

    Имя равно is_subscriber

    Значение равно yes

    Заголовок

    Имена и значения HTTP-заголовков

    Особенности параметра
    • Для разных заголовков действует логика И: запрос должен содержать все указанные пары «имя + значение».

    • Для нескольких значений одного заголовка действует логика ИЛИ: достаточно совпадения с любым из них.

    • Эти условия работают одновременно: для разных заголовков действует И, для нескольких значений одного — ИЛИ.

    Пример. Вы указали заголовки X-Env: prod, X-Region: ru и X-Region: us. Если запрос содержит:

    • X-Env: prod и X-Region: ru — правило сработает

    • X-Env: prod и X-Region: us — правило сработает

    • только X-Env: prod — не сработает

    • только X-Region: ru — не сработает

    • Можно добавить до 100 связок «имя + значение» в одно условие (используйте кнопку + Или).

    • Длина имени — до 200 символов.

    • Длина значения — до 200 символов.

    Имя равно X-App-Version

    Значение начинается с 2.0

    Имя хоста

    Значение заголовка Host (доменное имя сервера, к которому обращается клиент)

    • Можно добавить до 100 значений в одно условие (используйте кнопку + Или).

    • Длина значения — до 200 символов.

    • Не начинайте строку с пробела.

    • Укажите домен целиком или его часть.

    • Не указывайте протокол, например https://.

    • Не указывайте путь, например /main.

    Имя хоста равно api.site.com

    Хостинговая подсеть

    Трафик с IP-адресов, которые принадлежат хостинг-провайдерам или дата-центрам

    Не задаются

    Метод запроса

    Тип используемого HTTP-метода

    Выберите из выпадающего списка один или несколько методов

    Метод запроса в POST

    Referer

    Значение заголовка Referer — то есть адрес страницы, с которой пользователь перешёл на ваш ресурс

    • Можно добавить до 100 значений в одно условие (используйте кнопку + Или).

    • Длина значения — до 200 символов.

    • Укажите полный URL-адрес, домен или его часть.

    • Не начинайте строку с пробела.

    • Используйте только символы, допустимые для URL.

    Referer начинается с google.com

    ASN

    Номер автономной системы (ASN), которой принадлежит IP источника

    • Используйте число с префиксом AS (например, AS13335 или as13335).

    • Длина номера должна составлять от 1 до 10 цифр.

    • В одном поле можно указать до 100 уникальных номеров.

    • Один и тот же номер не может быть указан одновременно в списках в и не в.

    ASN в AS13238

    Хэши

    Уникальный «цифровой отпечаток» устройства (хэш), одного из трёх уровней точности на выбор: Servicepipe hash (loose), Servicepipe hash (medium) или Servicepipe hash (strict)

    • Можно добавить до 100 значений в одно условие (используйте кнопку + Или).

    • Значение должно быть положительным числом от 1 до 200 символов.

    Servicepipe hash (strict) в 1234567890

    Запрос от нового пользователя

    Трафик от пользователей, которые зашли на ресурс впервые и чей «цифровой отпечаток» (хэш) пока не зафиксирован в нашей базе

    Не задаются

    Исходные подсети

    IP-адрес или подсеть отправителя

    • Можно добавить до 200 значений в одно условие (используйте кнопку + Или).

    • Укажите конкретные IP-адреса или их диапазоны (подсети).

    • Можно указывать адреса форматов IPv4 (например, 192.168.1.1) и IPv6 (например, 2001:db8::1).

    • Для указания диапазонов используйте формат CIDR — запись со слэшем (например, /24 для всей сети или /32 для одного адреса).

    Исходные подсети в 192.168.1.0/24 или 2001:db8::1

    User-Agent

    Значение заголовка User-Agent (идентификатор браузера, устройства или программного клиента, который делает запрос)

    • Можно добавить до 100 значений в одно условие (используйте кнопку + Или).

    • Длина значения — до 200 символов.

    • Не начинайте строку с пробела.

    • Используйте нужный регистр (например, Chrome и chrome — это разные значения).

    User-Agent равно BadBot/1.0

    X-Forwarded-For

    Значение заголовка X-Forwarded-For (цепочка IP-адресов прокси-серверов, через которые прошёл запрос до попадания на ваш ресурс)

    • Можно добавить до 100 значений в одно условие (используйте кнопку + Или).

    • Длина значения — до 200 символов.

    • Не начинайте строку с пробела.

    • Укажите конкретные IP-адреса или их диапазоны.

    X-Forwarded-For содержит 203.0.113.10

    Tor (The Onion Router)

    Трафик из сети Tor, которая скрывает реальный IP-адрес источника

    Не задаются

    Описание операторов
    Набор операторов зависит от выбранного параметра.
    Оператор Когда сработает правило

    равно

    При полном совпадении значения.

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

    не равно

    Если значение не совпадает с указанным.

    Пример: вы указали Имя хоста не равно api.example.com. Правило сработает для запросов к другим хостам — например, example.com, www.example.com или admin.example.com. А для запросов к api.example.com не сработает.

    содержит

    Если значение содержит указанную последовательность символов.

    Пример: вы указали Query string содержит debug=true. Правило сработает только для запросов, где среди параметров есть debug=true — например, ?id=10&debug=true. Последовательность должна быть точной: если вместо debug=true в параметрах стоит что-то похожее, но не идентичное (например, degub=true или debug=treu), правило не сработает.

    не содержит

    Если значение не содержит указанную последовательность символов.

    Пример: вы указали Content-Type не содержит json. Правило сработает для запроса с любым значением заголовка без «json»: например, text/plain, application/xml, multipart/form-data и других. А вот для application/json, application/ld+json и подобных не сработает.

    начинается с

    Если значение начинается с указанной последовательности символов.

    Пример: вы указали Путь URL начинается с /admin. Правило сработает для запросов к /admin и ко всем вложенным путям: /admin/users, /admin/access и другим.

    не начинается с

    Если значение не начинается с указанной последовательности символов.

    Пример: вы указали Имя хоста не начинается с api. Правило сработает для запросов к хостам example.com, www.example.com, admin.example.com и другим, названия которых не начинаются с api. А для api.example.com или api-test.example.com не сработает.

    заканчивается на

    Если значение заканчивается указанной последовательностью символов.

    Пример: вы указали Сегмент пути URL заканчивается на .php. Правило сработает для значений login.php, index.php и profile.php. А для login.html, index.js или php-login не сработает: указанная последовательность должна находиться именно в конце значения.

    не заканчивается на

    Если значение не заканчивается указанной последовательностью символов.

    Пример: вы указали X-Forwarded-For не заканчивается на 10. Правило сработает для запросов, в которых значение заголовка заканчивается на другие символы, например 192.0.2.15 или 198.51.100.25. А для значений 192.0.2.10, 203.0.113.10 и других, заканчивающихся на 10, правило не сработает.

    в

    Если значение входит в указанный список.

    Пример: вы указали Метод запроса в GET, POST. Правило сработает для запросов с одним из этих методов. Для запросов с методами PUT, DELETE, PATCH и другими, которых нет в списке, правило не сработает.

    не в

    Если значение не входит в указанный список.

    Пример: вы указали Страна не в Russian Federation, Belarus. Правило сработает для запросов из всех стран, кроме России и Беларуси.

    пустое

    Если у параметра нет значения.

    Пример: вы указали Content-Type пустое. Правило сработает для запросов, в которых заголовок Content-Type не передан. Если заголовок есть и содержит любое значение, например application/json или text/plain, правило не сработает.

    не пустое

    Если у параметра есть значение.

    Пример: вы указали Content-Type не пустое. Правило сработает для запросов, в которых заголовок Content-Type содержит любое значение, например application/json или text/plain. Если заголовок не передан, правило не сработает.

    любое

    При любом значении параметра.

    Пример: вы указали Cookie_all (и): Имя — session, Значение — любое. Правило сработает при наличии cookie session с любым значением. Если cookie с таким именем в запросе нет, правило не сработает.

    Пример настроек для лимитов

    Лимит запросов — это порог по количеству входящих запросов за определённый период (например, за минуту). Он позволяет ограничить работу правила.

    Без лимита правило применяется ко всем запросам, которые подходят под заданные условия (их вы прописали на вкладке Трафик). С лимитом поведение системы меняется — она начинает считать количество таких запросов и применяет правило только до либо после достижения лимита (до или после — вы выбираете сами).

    Чтобы настроить лимит, укажите следующие параметры:

    • Тип лимита (можно настроить оба сразу):

      • Общий — система суммирует все запросы, которые подходят под ваши условия по трафику. Правило применится к любым таким запросам, без деления на IP.

      • На один IP — система считает подходящие под ваши условия запросы отдельно для каждого IP-адреса. Правило применится только к тем адресам, с которых пришло превышение.

    • Запросы — количество запросов, которое система должна зафиксировать. Максимальное значение — 5000.

    • Период — временное окно, за которое будут подсчитываться эти запросы (от 1 секунды до 10 минут).

    • Режим применения правила (до или после лимита).

    • После превышения лимита

    • До достижения лимита

    Пока лимит не достигнут, правило не работает. Как только достигнут, правило начинает применяться ко всем следующим запросам.

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

    Пример: вы настроили условие Страна — не Россия, включили параметр Хостинговая подсеть, лимит 100 запросов в минуту и действие — CAPTCHA.

    • На первые 100 запросов ваше правило не отреагирует.

    • Со 101-го запроса система начнёт показывать капчу всем, кто приходит от хостинг-провайдеров из других стран.

    Правило работает, пока лимит не достигнут. Как только достигнут, правило перестаёт работать — следующие запросы будут проверяться другими правилами.

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

    Пример: вы задали условия Страна — Россия и User-Agent содержит MyBusinessBot/1.0, поставили лимит 100 запросов в минуту и настроили действие «пропустить». Тогда:

    • Первые 100 таких запросов пройдут на ресурс свободно.

    • Начиная со 101-го правило перестанет применяться. Новые запросы с Страна — Россия и User-Agent содержит MyBusinessBot/1.0 будут проверяться следующими по списку правилами.

    В режиме «До достижения лимита» не используйте действие «Заблокировать». С ним лимит перестаёт работать: заблокированные запросы не учитываются в счётчике, поэтому весь трафик, который подходит под условия правила, будет постоянно блокироваться.

    Почему так: этот режим рассчитан на пропуск трафика или выдачу проверок, а не на блокировку.

    Настройки статуса DDoS-атаки

    Выберите, когда должно работать правило:

    • Всегда — правило активно постоянно.

    • Пока нет DDoS-атаки — пока нет DDoS-атаки, правило работает; как только началась атака, правило перестаёт работать.

    • Во время DDoS-атаки — пока идёт атака, правило работает; как только атака закончилась, правило перестаёт работать.

  4. Выберите Действия.

    Настройка действий

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

    • Блокировать весь трафик

    • Действия по классам источника

    Используйте опцию Блокировать всё (включая мобильное приложение) для полной блокировки любого трафика, попавшего под правило.

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

    Зачем это нужно: чтобы остановить злоумышленников, которые научились имитировать запросы вашего мобильного приложения и пытаются обойти защиту.

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

    Эта настройка не затрагивает запросы от мобильных приложений. Система продолжит пропускать их автоматически.

    Перед вами четыре класса источников:

    • Бот — запрос точно отправил бот

    • Вероятно бот — с высокой вероятностью запрос отправил бот, но система не уверена на 100%

    • Вероятно человек — с высокой вероятностью запрос отправил человек, но система не уверена на 100%

    • Человек — запрос точно отправил человек

    Установите для каждого нужное действие:

    • По умолчанию — правило не будет принимать решение для этого класса. Запрос будет проанализирован в рамках индивидуального профиля защиты.

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

    • Заблокировать — немедленно заблокировать запрос.

    • JS-челлендж — отправить JavaScript-проверку.

    • Cookie-челлендж — проверить, поддерживает ли клиент работу с cookie.

    • CAPTCHA — отправить капчу для подтверждения, что запрос отправлен человеком.

    Если вы используете схему интеграции Module или Hybrid и хотите настроить выдачу CAPTCHA, нужно перед созданием правила:

    1. отправить в техподдержку запрос на включение CAPTCHA для вашего ресурса;

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

    3. после этого настроить CAPTCHA в правиле защиты.

    Если пропустить эти шаги, вместо CAPTCHA защита будет блокировать запросы.

  5. Нажмите Создать.

    Правило появится в общем списке на вкладке Правила защиты. Чтобы правило начало работать, нажмите на переключатель в столбце Включено: он должен загореться зелёным.

    Переключатель для включения и отключения правила

Примеры настройки

Ниже приведены примеры, как можно настроить правило защиты. Кликните на заголовок, чтобы раскрыть описание.

Пример 1. Защита формы входа от брутфорса

Задача: ограничить количество попыток входа с одного IP-адреса до 5 в минуту.

Настройка:

  1. Описание правила: Brute-force login protection.

  2. Условия для трафика:

    • Переменная: Путь URL, Операция: равно, Значение: /login

    • Переменная: Метод запроса, Операция: равно, Значение: POST

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

    • Активировать переключатель На один IP

    • Запросы: 5

    • Период: 1 минута

  4. Действия:

    • Бот: Заблокировать

    • Вероятно бот: Заблокировать

    • Вероятно человек: CAPTCHA

    • Человек: CAPTCHA

Пример 2. Challenge для подозрительного трафика во время атаки

Задача: усилить проверку запросов к каталогу во время DDoS-атаки.

Настройка:

  1. Описание правила: Additional DDoS protection.

  2. Условия для трафика:

    • Переменная: Путь URL, Операция: начинается с, Значение: /catalogue/

  3. Статус DDoS-атаки: Во время DDoS-атаки.

  4. Действия:

    • Бот: JS-челлендж

    • Вероятно бот: JS-челлендж

    • Вероятно человек: JS-челлендж

    • Человек: Пропустить

Пример 3. Разрешение доступа для API партнёра

Задача: разрешить все запросы к /api/partner/ с IP-адреса 1.2.3.4.

Настройка:

  1. Описание правила: Allow Partner X API.

  2. Условия для трафика:

    • Переменная: Путь URL, Операция: начинается с, Значение: /api/partner/

    • Переменная: Исходные подсети, Операция: в, Значение: 1.2.3.4/32

  3. Лимиты запросов: не настраивать.

  4. Действия:

    • Бот: Пропустить

    • Вероятно бот: Пропустить

    • Вероятно человек: Пропустить

    • Человек: Пропустить

Правило «Разрешение доступа для API партнёра» необходимо разместить в самом верху списка, чтобы оно сработало раньше любых блокирующих правил.

Проверка работы

Проверить, как срабатывает правило, можно в панели управления на вкладке Логи запросов.

В логах вы увидите:

  • Параметры запроса.

  • Действие защиты, например пропуск или блокировка.

  • Причину применения действия. Если запрос попал под действие правила, здесь будет указан его идентификатор.

  • Исходный класс, в который защита определила источник запроса: Human (человек), Likely human (скорее всего, человек), Likely bot (скорее всего, бот) или Bot (бот).

Пример лога

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

Управление

На вкладке Правила защиты можно управлять правилами прямо из списка:

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

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

  • Включить/выключить: используйте переключатель в столбце Включено. Зелёный цвет значит, что правило работает и участвует в фильтрации, серый — что оно неактивно.

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

  • Редактировать: нажмите на три точки () в конце строки и выберите Редактировать. Здесь вы сможете изменить любые параметры правила.

  • Удалить: нажмите на три точки (), выберите Удалить и подтвердите действие. Восстановить удалённое правило невозможно.

  • Создать правило выше: нажмите на три точки () и выберите пункт Создать правило выше, чтобы быстро добавить новое правило над текущим. Это позволит задать новому правилу более высокий приоритет.

  • Создать правило ниже: нажмите на три точки () и выберите пункт Создать правило ниже, чтобы добавить новое правило под текущим. У созданного правила будет более низкий приоритет.

Действия над правилами