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.
- Дія при перевищенні не блокує легітимні інтеграції назавжди.
- Після увімкнення перевірена реакція на серію тестових запитів.