Una excepción del WAF es una regla de tipo waf_exception: un rule_id y un path_pattern, que se pueden limitar a algunos nombres de la zona. En las rutas que coinciden, esa regla no suma puntos a la puntuación de anomalía; las demás reglas que coincidieron con la misma petición siguen contando.
Encontrar el identificador de la regla
Abre la petición bloqueada (o, en modo solo observar, registrada) en los eventos de seguridad. Su rule_id es la regla del WAF que la decidió; por ejemplo, 942100 (una regla de inyección SQL de CRS), 10002 (una regla de OpenWAF) o 1003 (el escudo de redirección abierta).
Valores de rule_id
rule_id | Efecto en la ruta |
|---|---|
0 | Todas las reglas del WAF (OWASP CRS y las de OpenWAF). No los escudos. |
1001–1008 | Solo ese escudo. |
| cualquier otro | Solo esa regla. |
Valores de path_pattern
path_pattern | Coincide con |
|---|---|
vacío o * | cualquier ruta |
acabado en *, p. ej. /api/upload/* | cualquier ruta que empiece por /api/upload/ |
cualquier otro, p. ej. /contact | exactamente esa ruta |
La ruta se compara sin la query y después de limpiar los segmentos // y ..
Añadir una excepción
Dominio → Seguridad → Firewall → Reglas → Excepciones del WAF → Añadir excepción del WAF. Indica la Regla del WAF (0, el identificador de un escudo o el de la regla), la Ruta y, si quieres, los nombres en Se aplica a y una Nota.
openwaf-cloud ctl rules add example.com kind=waf_exception rule_id=942100 path_pattern='/search' \
note="El buscador acepta texto parecido a SQL" --reason "Falso positivo en /search"curl -sS -X POST "https://dash.openwaf.dev/v1/orgs/$ORG/zones/example.com/rules" \
-H "Authorization: Bearer $OPENWAF_TOKEN" \
-H "X-Change-Reason: Falso positivo en /search" \
-H "Content-Type: application/json" \
-d '{"kind": "waf_exception", "rule_id": 942100, "path_pattern": "/search", "note": "El buscador acepta texto parecido a SQL"}'add_rule con {"zone": "example.com", "kind": "waf_exception", "rule_id": 942100, "path_pattern": "/search", "reason": "…"}; simula y después confirma.
Añade hosts (hosts:='["shop.example.com"]' en la CLI) para limitar la excepción a algunos nombres. Las reglas no se editan: borra la regla y vuelve a añadirla.