[[indicator]]
phrase = "access denied"
description = "Generic block phrase used by ModSecurity, Imperva, and many cloud WAFs"
[[indicator]]
phrase = "blocked"
description = "Catch-all (must run after status-code check to avoid 404 page false positives)"
[[indicator]]
phrase = "forbidden"
description = "HTTP-403-aligned phrase common to nginx error pages and WAF templates"
[[indicator]]
phrase = "captcha"
description = "Indicates a managed challenge — Cloudflare, hCaptcha, reCAPTCHA"
[[indicator]]
phrase = "challenge"
description = "Cloudflare/Akamai managed-challenge JS interstitials"
[[indicator]]
phrase = "request denied"
description = "Imperva default block-page text"
[[indicator]]
phrase = "security policy"
description = "ModSecurity / OWASP CRS default phrasing"
[[indicator]]
phrase = "not acceptable"
description = "HTTP-406 phrasing — used by mod_security to obscure 403"
[[indicator]]
phrase = "rate limit"
description = "Generic 429 / WAF rate-limit page text"
[[indicator]]
phrase = "too many requests"
description = "RFC 6585 status text leaked into body"
[[indicator]]
phrase = "waf"
description = "Self-identifying block page"
[[indicator]]
phrase = "firewall"
description = "Self-identifying block page (often verbose error templates)"
[[indicator]]
phrase = "request blocked"
description = "Cloudflare and Imperva block-page templates"