← Документация WAF / custom-rules / use-cases
Требование определённых HTTP-заголовков
Многие организации отбирают трафик по наличию определённых заголовков HTTP-запроса. Используйте в языке Rules Поля заголовков HTTP-запроса для отбора запросов с определёнными заголовками.
Пример 1: требование наличия HTTP-заголовка
Этот пример пользовательского правила использует http.request.headers.names поле для проверки наличия X-CSRF-Token заголовок. lower() приводит имя заголовка к нижнему регистру, чтобы выражение было нечувствительно к регистру.
Когда X-CSRF-Token отсутствует, Cloudflare блокирует запрос.
-
Когда входящие запросы соответствуют:
Используйте редактор выражений:
not any(lower(http.request.headers.names[*])[*] eq "x-csrf-token") and (http.request.full_uri eq "https://www.example.com/somepath") -
Затем примите меры: Block
Пример 2: требование HTTP-заголовка с определённым значением
Этот пример пользовательского правила использует http.request.headers поле для проверки наличия X-Example-Header и получить его значение (если оно есть). Когда заголовок X-Example-Header отсутствует или не имеет значения example-value, Cloudflare блокирует запрос.
-
Когда входящие запросы соответствуют:
Используйте редактор выражений:
not any(http.request.headers["x-example-header"][*] eq "example-value") and (http.request.uri.path eq "/somepath") -
Затем примите меры: Block
Ключи в http.request.headers поле, соответствующие именам HTTP-заголовков, записаны в нижнем регистре.
В этом примере имя заголовка нечувствительно к регистру, а значение заголовка чувствительно к регистру.