Лимиты запросов
Как настроить лимиты запросов для вашего ресурса, как они работают и какое место занимают в иерархии фильтрации.
|
Доступно для режимов защиты Антибот и Анти-DDoS. Функционал подключается по запросу. Если внутри Пользовательских правил в UI вкладка «Лимиты запросов» неактивна, напишите в поддержку — откроем её для вас. |
О группе правил
Описание
Лимиты запросов — группа правил, которая устанавливает ограничение: сколько запросов к конкретному URI-пути можно отправить с одного IP за временной промежуток.
Пример лимита: принимать к странице /login не больше 5 запросов в минуту с одного IP. Если IP пришлёт больше запросов, заблокировать его на 5 минут.
Лимиты запросов пригодятся, когда нужно:
-
защитить эндпоинты от перегрузки;
-
снизить риск эксплуатации бизнес-логики;
-
установить дополнительную страховку на случай, если боты научатся имитировать трафик от доверенных источников.
Настройте для нужных URI-путей допустимую частоту запросов. Обычная нагрузка будет проходить, а IP-адреса с аномальной активностью — временно блокироваться.
Как работает
-
Вы создаёте лимитное правило и указываете:
-
к какому URI-пути применять правило;
-
сколько запросов с одного IP допустимо за выбранный период;
-
на какое время заблокировать IP, если он превысит лимит.
-
-
Система считает, сколько запросов каждый IP отправил к этому URI-пути.
-
Если IP превысит лимит, система заблокирует его на указанное время.
-
Когда время блокировки закончится, этот IP снова сможет отправлять запросы.
Чем отличается от правил защиты
В разделе Пользовательские правила можно устанавливать лимиты запросов с помощью двух групп правил: Лимиты запросов (о них вы сейчас читаете) и Правила защиты.
Разница в широте настроек и принципе работы. Лимиты запросов — точечный функционал, который временно ограничивает число запросов с одного IP к конкретным URI-путям. Правила защиты — более гибкий функционал, в котором лимит работает как одно из условий правила: если запрос подходит под условия, защита применяет к нему выбранное действие.
Ниже сравниваем обе группы правил в контексте лимитов запросов, чтобы вам было проще выбрать подходящую.
| Лимиты запросов | Правила защиты | |
|---|---|---|
Быстрота настройки |
Быстро |
Дольше |
Когда выбирать |
Нужно ограничить частые запросы к конкретному URI-пути |
Нужно ограничить частые запросы с гибким набором характеристик (список характеристик в строке ниже) |
По каким параметрам трафика можно установить лимит |
URI-путь |
URI-путь, страна, ASN, query string, headers, cookies, метод, User-Agent, IP/подсети, SP hash и другие параметры |
На что можно поставить лимит |
Число запросов с одного IP |
|
Что происходит при достижении лимита |
IP-адрес, откуда шли запросы к указанному URI-пути, блокируется на заданное время. Новые запросы от него не проходят до окончания блокировки. |
К запросам, подходящим под заданные условия и превысившим лимит, применяется выбранное вами действие. Можно указать любое из пяти действий:
Лимит работает как дополнительное условие правила. Вы можете изменить механику лимита так, чтобы действие выполнялось не после, а до его достижения.
|
Можно ли учитывать статус DDoS-атаки |
Нет |
Да. Можно указать, когда должен работать лимит: всегда, только во время DDoS-атаки или пока нет DDoS-атаки. |
Доступны для режима Антибот |
Да |
Да |
Доступны для режима Анти-DDoS |
Да |
Нет |
Какое место занимает в иерархии фильтрации
Наша защита фильтрует каждый запрос поэтапно: сначала с помощью одного механизма фильтрации, затем второго, третьего и так далее. В списке ниже вы увидите, на каком месте стоят Лимиты запросов.
|
В зависимости от того, какой режим защиты вы подключили (Антибот или Анти-DDoS), набор этапов будет отличаться. |
-
Антибот
-
Анти-DDoS
Если два механизма фильтрации конфликтуют, применяется тот, который сработал первым. Пример: белый список стоит выше лимитов запросов. Это значит, все запросы с IP из белого списка будут пропущены — даже если они превышают лимит.
Рекомендации
-
Создавайте отдельные правила для важных URI-путей. Так проще подобрать подходящий лимит и снизить риск случайной блокировки обычных запросов.
-
Не ставьте слишком низкие лимиты для страниц, на которые часто заходят пользователи.
-
Перед настройкой лимита оцените нагрузку на URI-путь по графикам в Логах запросов. Учитывайте обычную частоту запросов и пиковые значения, чтобы установить лимит, который не будет мешать легитимному трафику.
-
Для страниц входа, регистрации и восстановления пароля можно использовать более строгие лимиты.
-
Если URI-путь часто используется для AJAX-запросов, проверьте, что лимит не мешает работе интерфейса.
Настройка
Открыть «Лимиты запросов»
Перейдите в раздел Защита приложений → Ресурсы. Напротив ресурса, для которого хотите настроить лимит, нажмите на три точки (…) и выберите Пользовательские правила. Откроется раздел, где вы найдёте вкладку Лимиты запросов.
Создать лимитное правило
-
Нажмите
+ Создать лимитное правило. Откроется окно создания правила, все дальнейшие шаги выполняйте в нём.
-
В поле
Имя правилазадайте понятное название, которое описывает суть лимита и поможет найти его в списке.Примеры:
-
«Защита формы входа».
-
«Ограничение запросов к API».
-
-
Укажите URI-путь, для которого будет действовать правило.
Можно выбрать оператор. Он определяет, как система будет сравнивать URI из запроса со значением в правиле:
-
=— правило сработает только для указанного пути. Пример:URI-путь = /login. -
начинается с— правило сработает для указанного пути и всех вложенных путей. Пример:URI-путь начинается с /api/.
Можно указать не один, а сразу несколько URI-путей. Для этого добавьте новые пути через
+ или.Лимит будет общим для всех URI-путей, указанных в правиле.
Пример. Вы добавили в правило условия:
-
URI-путь = /commentsилиURI-путь начинается с /contact. -
Лимит —
15запросов за60секунд.
Если за минуту с одного IP придёт 10 запросов к
/comments, 3 запроса к/contactи 3 запроса к/contact/press, система посчитает их вместе. Общий лимит (15 запросов) будет превышен, поэтому IP временно заблокируется. -
-
Задайте параметры Лимита запросов, при превышении которых IP будет заблокирован:
-
Запросов— максимальное количество запросов, которое система должна зафиксировать. Например,20. -
Период— время в секундах, за которое система будет считать запросы. Пример:60(одна минута).
-
-
Укажите Длительность блокировки — время в секундах, на которое система заблокирует IP-адрес после превышения лимита. Пример:
3600(один час). -
Нажмите
Создать правило. Правило появится в списке и начнёт работать.
Примеры настроек
Ниже приведены примеры, как можно настроить лимитное правило. Кликните на заголовок, чтобы раскрыть описание.
Пример 1. Ограничение запросов к конкретному URI-пути
Настройки правила:
-
URI-путь = /api/v1/orders. -
Запросов—100. -
Период (сек.)—60. -
Длительность блокировки (сек.)—120.
Правило будет учитывать только запросы к /api/v1/orders. Если с одного IP поступит больше 100 запросов за 60 секунд, система заблокирует этот IP на 120 секунд.
Пример 2. Ограничение запросов к группе URI-путей
Настройки правила:
-
URI-путь начинается с /api/v1/. -
Запросов—200. -
Период (сек.)—60. -
Длительность блокировки (сек.)—120.
Правило будет учитывать запросы ко всем путям, которые начинаются с /api/v1/, например:
-
/api/v1/catalog; -
/api/v1/search; -
/api/v1/products.
Если с одного IP поступит больше 200 запросов к путям, которые подходят под правило, система заблокирует этот IP на 120 секунд.
Управление
На вкладке Лимиты запросов вы найдёте список всех созданных лимитных правил. Управлять правилами можно прямо из списка:
-
Редактировать: нажмите на три точки (
…) в конце строки и выберитеРедактировать. В открывшемся окне измените нужные параметры правила. -
Удалить: нажмите на три точки (
…), выберитеУдалитьи подтвердите удаление.