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.
- Порядок правил учитывает более узкие условия выше по списку.
- После публикации проверено реальным запросом и логами событий.