WAF Custom Rules — це конструктор правил у панелі Cloudflare, який дозволяє описати будь-яку умову фільтрації трафіку без написання коду. Правило працює на межі мережі Cloudflare, до того як запит дійде до сервера, тому зайве навантаження на origin не створюється.
Custom Rules потрібні тоді, коли стандартних Managed Rules недостатньо: наприклад, треба заблокувати запити до конкретного шляху з рідкісним User-Agent, закрити доступ до адмінки за країною або пропустити перевірених партнерів за заголовком API-ключа.
Як створити custom rule у панелі керування
Правило створюється в розділі Security → WAF → Custom rules. Порядок дій однаковий для будь-якого сценарію.
- Відкрити вкладку Custom rules і натиснути Create rule.
- Задати зрозумілу назву правила — вона потрапить у журнали.
- Зібрати умову через візуальний редактор або ввести вираз вручну.
- Обрати дію: Block, Challenge, JS Challenge, Managed Challenge, Log або Skip.
- Зберегти і розгорнути правило, перевіривши попередній перегляд збігів.
Поля, оператори і дії конструктора правил
Умова правила складається з поля запиту, оператора порівняння і значення. Таблиця нижче показує базовий набір, якого вистачає для більшості завдань.
| Поле | Типовий оператор | Дія |
|---|---|---|
| URI Path | contains, equals | Block |
| IP Source Address | is in, is not in | Challenge |
| User Agent | contains | JS Challenge |
| Country | equals, is in | Managed Challenge |
Приклади правил для типових завдань
Нижче — вираз у форматі Cloudflare Rules language, який блокує запити до сторінки адміністратора без потрібного заголовка авторизації.
(http.request.uri.path contains "/wp-admin") and not (http.request.headers["x-api-key"][0] eq "secret-value")- Блокування за шляхом і відсутністю заголовка — доступ до адмінки лише для довірених клієнтів.
- Обмеження за країною для форми реєстрації, коли сервіс працює в одному регіоні.
- Challenge для запитів без стандартного заголовка Accept-Language, характерних для ботів.
Custom Rules і інші механізми захисту: як обрати
Custom Rules — це ручні умови «якщо — тоді», а Firewall правила у старому інтерфейсі вирішують подібне завдання простішим синтаксисом. Якщо тариф підтримує обидва варіанти, для нових проєктів варто обирати Custom Rules — інтерфейс активніше розвивається.
Коли завдання — не заблокувати, а обмежити частоту запитів з однієї адреси, правильний інструмент — Rate Limiting, а не WAF-правило з ручним лічильником.
Як перевірити і налагодити правило
Після ввімкнення правила надішліть тестовий запит і подивіться подію в розділі Security → Events. Там видно, яке саме правило спрацювало і яку дію застосовано.
curl -I -A "test-agent" https://example.com/wp-admin/Якщо подія не з'явилася, перевірте порядок правил: більш раннє правило з дією Skip може зупиняти обробку до потрібної умови. Загальну картину трафіку зручно дивитися в Cloudflare Analytics — там видно частку заблокованих запитів за кожним правилом.
Чек-лист перед запуском правила
- Назва правила зрозуміла і відображає мету.
- Умова перевірена на попередньому перегляді збігів.
- Дія відповідає ризику — не Block там, де достатньо Log.
- Порядок правил враховує вужчі умови вище за списком.
- Після публікації перевірено реальним запитом і журналами подій.