← Документация 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-заголовков, указывается в нижнем регистре.
В этом примере имя заголовка не учитывает регистр, а значение заголовка регистр учитывает.