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.
- Порядок правил враховує вужчі умови вище за списком.
- Після публікації перевірено реальним запитом і журналами подій.
Часті питання
Чи може декілька custom rules спрацьовувати одночасно на один запит?
Так, до одного запиту можуть застосовуватися декілька правил одразу, і порядок у списку має значення: Cloudflare перевіряє їх згори вниз і зупиняється на першому збігу з дією, яка перериває обробку, на кшталт Block чи Skip. Тому вужчі й специфічніші умови варто розташовувати вище за загальні, інакше широке правило перехопить запит раніше потрібного.
Що буде, якщо умову правила складено некоректно — сайт зламається?
Некоректно складена умова не ламає сайт одразу — вона або взагалі не спрацьовує, тобто правило існує, але нічого не фільтрує, або захоплює більше запитів, ніж задумано, через надто широкий збіг. Саме тому перед увімкненням правила варто перевірити попередній перегляд збігів і для ризикованих умов спершу обрати дію Log замість Block.
Правило з дією Block діє миттєво, чи треба чекати поширення мережею?
Правило починає діяти майже одразу після збереження, без помітної затримки на поширення мережею Cloudflare — перевірити це можна тестовим запитом і подією у розділі Security → Events буквально за декілька секунд. Якщо подія довго не з'являється, причина зазвичай не у швидкості поширення, а у більш ранньому правилі з дією Skip, яке зупиняє обробку раніше.
Чи треба платити за Custom Rules окремо від звичайного тарифу?
Ні, конструктор Custom Rules входить у панель керування Cloudflare як вбудований інструмент, а не окрема платна послуга сама по собі. Кількість правил і деякі просунуті поля дійсно залежать від обраного тарифу, та створення і запуск базових правил зі статті не вимагає окремої оплати понад уже обраний план обслуговування домену.