← Документация WAF / troubleshooting
Взаимодействие фаз правил
Cloudflare оценивает функции обработки запросов в фазы. Правило, которое выглядит корректным само по себе, может вести себя иначе, если другой продукт уже изменил или завершил обработку запроса.
Пользовательские правила вычисляются по переписанному URL
Cloudflare применяет URL Rewrite Rules перед пользовательские правила.
Если правило преобразования (transform rule) переписывает /public-login в /internal/login последующие фазы WAF будут оценивать уже перезаписанный путь.
Это означает следующее:
- Пользовательское правило, совпадающее с
/public-loginможет не сработать после перезаписи. - Пользовательское правило, совпадающее с
/internal/loginможет сработать, даже если посетитель запросил/public-login.
Решение
При отладке пользовательского правила проверьте, не изменило ли правило перезаписи URL до вычисления WAF. Вы можете использовать Trace , чтобы проверить порядок вычисления ваших правил на примере запроса.
Дополнительную информацию см. в описании порядка обработки запроса в Список фаз.
Правила IP Access могут обходить пользовательские правила
Правила IP Access выполняются до пользовательских правил WAF.
Если правило IP Access с Allow (действие) срабатывает на запросе, последующие пользовательские правила для этого запроса Cloudflare не вычисляет.
Что это означает
- Пользовательское правило может выглядеть «несрабатывающим» для конкретного IP-адреса, даже если выражение корректно.
- Слишком раннее добавление исходного IP-адреса в список разрешений (allowlist) может помешать работе другой логики безопасности приложения (а именно пользовательских правил).
Решение
Если запрос неожиданно обходит пользовательское правило, сначала проверьте, нет ли совпадающих правил IP Access.
Skip и Allow ведут себя по-разному
Allow в правилах IP Access ведёт себя иначе, чем действие Skip, доступное в пользовательских правилах WAF.
Allow (действие) в правилах IP Access обходит пользовательские правила WAF, правила rate limiting, WAF Managed Rules (кроме записей уровня страны) и устаревшие правила файрвола. Совпадения не отображаются в Security Events. Разрешённый запрос никогда не достигает пользовательских правил WAF, включая любые правила логирования или отслеживания.
Skip в пользовательских правилах WAF указывает Cloudflare выборочно пропускать определённые продукты или компоненты безопасности приложений, например управляемые правила WAF. В зависимости от конфигурации пользовательского правила с действием Skip остальные продукты безопасности всё равно оценят запрос и могут его заблокировать.
У пользовательских правил WAF нет Allow (действие). Чтобы управлять тем, что именно пропускает соответствующий запрос, используйте Skip (действие) и выберите конкретные продукты или фазы, которые нужно пропустить.
Решение
Проверьте вашу конфигурацию (а именно IP Access rules и пользовательские правила с действием Skip ), чтобы убедиться, что достигается ожидаемое поведение.
Если отдельные правила Управляемые наборы правил WAF блокируют запросы, которые вы хотите разрешить, вы можете создать исключения управляемых правил чтобы пропускать отдельные управляемые правила или наборы правил для конкретных запросов, вместо того чтобы полностью пропускать WAF Managed Rules.
Page Rules видят запрос не так, как современные правила
Page Rules — это устаревшее поведение, не совпадающее в точности с современными продуктами Rules.
В смешанных конфигурациях вы можете увидеть:
- Переписывание, влияющее на пользовательские правила и Managed Rules
- Разные результаты у Page Rule и современного правила, которые, казалось бы, нацелены на один и тот же путь
Решение
По возможности переносите поведение устаревших Page Rules в актуальные продукты Rules, чтобы запрос вычислялся в одной модели.
Рекомендуемый порядок устранения неполадок
Когда решение WAF выглядит неверным:
- Проверьте, не было ли более ранних перезаписей запроса.
- Проверьте совпадающие правила IP Access.
- Проверьте, ожидалось ли, что запрос остановится в фазе пользовательских правил или пропустит последующие фазы.
- Проверьте, выполнялось ли управляемое правило после совпадения пользовательского правила.
- Используйте Trace, когда он доступен, чтобы подтвердить фактический результат по каждой фазе.