Rate Limiting в Cloudflare ограничивает число запросов от одного источника за заданный период. Правило нужно там, где обычная блокировка не подходит: форма логина, поиск по сайту, эндпоинт API — легитимный пользователь должен пройти, а скрипт с перебором паролей или парсер — получить отказ после превышения порога.
Механизм считает запросы по ключу — обычно это IP-адрес, но можно учитывать и заголовок, cookie или параметр запроса. Счётчик работает на edge-серверах Cloudflare, поэтому origin не видит лишнего трафика ещё до срабатывания лимита.
Как создать правило Rate Limiting в панели
Правило настраивается в разделе Security → WAF → Rate limiting rules. Последовательность действий такая.
- Открыть Rate limiting rules и нажать Create rule.
- Указать условие для запросов, к которым применяется лимит — например, путь /api/login.
- Задать период подсчёта и порог количества запросов.
- Выбрать ключ подсчёта: IP, IP и User-Agent, либо значение заголовка.
- Настроить действие при превышении и длительность блокировки.
Параметры правила: период, порог, действие
Таблица показывает основные параметры и типичные значения для разных сценариев.
| Параметр | Пример значения | Назначение |
|---|---|---|
| Период | 10 секунд | Окно подсчёта запросов |
| Порог | 20 запросов | Максимум за период |
| Действие | Block, Challenge | Реакция на превышение |
| Mitigation timeout | 60 секунд | Время действия блокировки |
Примеры правил для типичных сценариев
Ниже — условие, которое ограничивает попытки входа с одного IP-адреса до 5 запросов за 60 секунд.
(http.request.uri.path eq "/wp-login.php") and (http.request.method eq "POST")- Защита формы логина от перебора паролей без блокировки обычных посетителей.
- Ограничение обращений к тяжёлому эндпоинту поиска, который нагружает базу данных.
- Лимит на публичный API-ключ, если тариф партнёра ограничивает число запросов в минуту.
Rate Limiting и WAF Custom Rules: что выбрать
Если задача — заблокировать трафик по постоянному признаку, например по стране или пути без токена, правильный инструмент — WAF Custom Rules. Rate Limiting решает другую задачу: он реагирует не на содержимое запроса, а на частоту повторов одного и того же источника.
Для точечной блокировки конкретных IP-адресов без учёта частоты проще использовать Firewall правила — они применяются сразу, без накопления счётчика.
Как проверить срабатывание и посмотреть логи
Проверить правило можно серией повторных запросов через curl — после превышения порога сервер должен вернуть код 429 или страницу challenge.
for i in $(seq 1 10); do curl -s -o /dev/null -w "%{http_code}\n" https://example.com/wp-login.php; doneСобытия срабатывания видны в Security → Events с указанием ключа подсчёта и IP-адреса. Общую динамику заблокированных запросов удобно смотреть в Cloudflare Analytics.
Чек-лист перед включением правила
- Условие ограничивает именно нужный путь, а не весь сайт.
- Порог и период проверены на реальной нагрузке, а не взяты наугад.
- Ключ подсчёта учитывает общий IP у пользователей за NAT или CDN.
- Действие при превышении не блокирует легитимные интеграции навсегда.
- После включения проверена реакция на серию тестовых запросов.