Правила rate limiting
Правила rate limiting позволяют задавать лимиты частоты для запросов, соответствующих выражению, и действие, выполняемое при достижении этих лимитов. Используйте правила rate limiting, чтобы предотвращать злоупотребление вашими сайтами и API — например, защитить эндпоинт входа от брутфорс-атак или ограничить количество вызовов API от одного клиента в заданном временном окне.
В новый дашборд безопасности, правила rate limiting — один из доступных типов правила безопасности. Правила безопасности выполняют связанные с безопасностью действия над входящими запросами, соответствующими заданным фильтрам.
Некоторые клиенты Enterprise могут создавать наборы правил rate limiting на уровне аккаунта, которые они могут развернуть в нескольких зонах Enterprise.
Параметры правила
Как и другие правила, обрабатываемые Ruleset Engine, правила rate limiting имеют следующие основные параметры:
- An выражение, задающее критерии отбора трафика с помощью Язык Rules.
- An действие, определяющее, что выполнять при совпадении правила и соблюдении дополнительных условий. В случае правил rate limiting действие выполняется, когда частота достигает заданного лимита.
Помимо этих двух параметров правилам rate limiting требуются следующие дополнительные параметры:
- Характеристики: Набор параметров, определяющих, как Cloudflare отслеживает частоту для этого правила.
- Period: период времени (в секундах), учитываемый при оценке частоты запросов.
- Запросов за период: число запросов за период времени, при котором сработает правило rate limiting.
- Длительность (или таймаут митигации): когда заданная частота достигнута, правило rate limiting блокирует последующие запросы в течение периода времени, определённого в этом поле.
- Поведение действий: по умолчанию Cloudflare применяет действие правила в течение настроенной длительности (mitigation timeout) независимо от частоты запросов в этот период. Некоторые клиенты Enterprise могут настроить правило так, чтобы ограничивать частоту запросов от максимальной частоты, пропуская входящие запросы, когда частота ниже настроенного лимита.
См. Параметры правил rate limiting для получения дополнительной информации об обязательных и необязательных параметрах.
См. Как Cloudflare определяет частоту запросов, чтобы узнать, как Cloudflare использует перечисленные параметры при определении частоты входящих запросов.
Взаимодействие с другими функциями безопасности приложений
Если вы используете несколько функций защиты приложений — пользовательские правила, Managed Rules, Super Bot Fight Mode, — важно понимать, как они взаимодействуют и в каком порядке выполняются. См. Совместная работа функций безопасности для получения дополнительной информации.
Важные замечания
-
Правила rate limiting выполняются по порядку, и некоторые действия, такие как Block останавливает вычисление остальных правил. Подробнее о действиях и их поведении см. Действия.
-
Правила rate limiting не предназначены для того, чтобы пропускать к исходному серверу точное число запросов. Между обнаружением запроса и обновлением счётчиков частоты возможна задержка до нескольких секунд. Из-за этой задержки лишние запросы могут успеть дойти до исходного сервера, прежде чем Cloudflare применит блокирующее действие, такое как блокировка или челлендж. Дополнительную информацию о работе счётчиков, включая их область действия в пределах отдельного дата-центра, см. в Расчёт частоты запросов.
-
Применение правил rate limiting к верифицированным ботам может повлиять на поисковую оптимизацию (SEO). Дополнительную информацию см. в Улучшение SEO.
Доступность
| Функция | Free | Pro | Business | Enterprise с безопасностью приложений | Enterprise с Advanced Rate Limiting |
|---|---|---|---|---|---|
| Доступные поля в выражении правила |
Путь, Verified Bot | Host, URI, Path, Full URI, Query, Verified Bot | Host, URI, Path, Full URI, Query, Method, Source IP, User Agent, Verified Bot | Общие поля запроса, поля заголовков запроса, Verified Bot, поля Bot Management1 | Общие поля запроса, поля заголовков запроса, Verified Bot, поля Bot Management1, поля тела запроса2 |
| Исключение кеша | Нет | Нет | Да | Да | Да |
| Характеристики подсчёта | IP | IP | IP, IP с поддержкой NAT | IP, IP с поддержкой NAT | IP, IP с поддержкой NAT, Query, Host, Headers, Cookie, ASN, Country, Path, JA3/JA4-отпечаток1, значение JSON-поля2, Body2, Form input value2, Custom |
| Пользовательское выражение подсчёта | Нет | Нет | Да | Да | Да |
| Доступные поля в выражении подсчёта |
Н/Д | Н/Д | Все поля выражений правил, код ответа, заголовки ответа | Все поля выражений правил, код ответа, заголовки ответа | Все поля выражений правил, код ответа, заголовки ответа |
| Модель подсчёта | Количество запросов | Количество запросов | Количество запросов | Количество запросов | Число запросов, оценка сложности |
| Ограничение частоты запросов (rate limiting) поведение действия |
Perform action during mitigation period | Perform action during mitigation period | Perform action during mitigation period | Perform action during mitigation period, Throttle requests above rate with block action | Perform action during mitigation period, Throttle requests above rate with block action |
| Периоды подсчёта | 10 с | Все поддерживаемые значения до 1 мин3 | Все поддерживаемые значения до 10 мин3 | Все поддерживаемые значения до 65 535 с3 | Все поддерживаемые значения до 65 535 с3 |
| Периоды тайм-аута реагирования | 10 с | Все поддерживаемые значения до 1 ч3 | Все поддерживаемые значения до 1 дня3 | Все поддерживаемые значения до 1 дня3 4 | Все поддерживаемые значения до 1 дня3 4 |
| Число правил | 1 | 2 | 5 | 1005 | 100 |
Сноски
1: доступно только клиентам Enterprise, купившим Bot Management.
2: Доступность зависит от вашего плана WAF.
3: Список поддерживаемых значений периода подсчёта/реагирования в секундах:
10, 15, 20, 30, 40, 45, 60 (1 мин), 90, 120 (2 мин), 180 (3 мин), 240 (4 мин), 300 (5 мин), 480, 600 (10 мин), 900, 1200 (20 мин), 1800, 2400, 3600 (1 ч), 65535, 86400 (1 день).
Не все значения доступны на всех тарифах.
4: Клиенты Enterprise могут задать собственный период mitigation timeout через API.
5: Клиенты Enterprise должны иметь application security в контракте, чтобы получить доступ к правилам rate limiting. Количество правил зависит от конкретных условий контракта.
Сноски
-
Доступно только клиентам Enterprise, купившим Bot Management. ↩ ↩2 ↩3
-
Поддерживаемые значения периода в секундах:
10, 15, 20, 30, 40, 45, 60 (1 мин), 90, 120 (2 мин), 180 (3 мин), 240 (4 мин), 300 (5 мин), 480, 600 (10 мин), 900, 1200 (20 мин), 1800, 2400, 3600 (1 ч), 65535, 86400 (1 день). ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 -
Клиенты Enterprise могут задать пользовательский период таймаута митигации через API. ↩ ↩2
-
Клиенты Enterprise должны иметь application security в контракте, чтобы получить доступ к правилам rate limiting. Количество правил зависит от конкретных условий контракта. ↩
Дальнейшие шаги
См. следующие ресурсы:
- Создание правила rate limiting в панели управления для зоны
- Создание правила rate limiting через API для зоны
Примеры для Terraform см. в Настройка правил rate limiting с помощью Terraform.
Связанные ресурсы
-
Cloudflare Rate Limiting (предыдущая версия, больше не доступна): документация по предыдущей версии правил rate limiting (с тарификацией по использованию).