feat(waf): Request-Body-Inspektion — Coraza sieht jetzt POST/PUT-Payloads — v1.3.6
Bisher inspizierte die WAF nur URL/Querystring + Header (SPOE sendete keinen Body, ProcessRequestBody wurde nie aufgerufen) → blind für POST/PUT-Payloads (Form-SQLi, JSON-Injection, Uploads). Jetzt: - haproxy.cfg.tpl: `option http-buffer-request` im public_https-Frontend, NUR wenn WAF aktiv (.WAFEnabled) — kein RAM-pro-Connection-Overhead sonst. - spoeCfg (haproxy.go): SPOE-Message sendet `body=req.body` an den Agent. - spoe.go: Body einsammeln → tx.WriteRequestBody + tx.ProcessRequestBody nach der Header-Phase (vor MatchedRules-Log, damit Body-Treffer geloggt werden); Interruption blockt in blocking-Mode. Coraza-Engine war schon bereit (SecRequestBodyAccess On + Limits, engine.go). Puffer bis tune.bufsize (~16KB); größere Bodies zur Prüfung gekappt. Render-Test: http-buffer-request nur bei WAF + vor dem SPOE-Filter; body=req.body. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -81,6 +81,13 @@ frontend public_https
|
||||
bind quic6@:443 ssl crt /etc/edgeguard/tls/ alpn h3
|
||||
{{- end}}
|
||||
{{- if .WAFEnabled}}
|
||||
# WAF: Request-Body puffern, damit edgeguard-waf den Body inspizieren
|
||||
# kann (POST/PUT-Payloads: Form-SQLi, JSON-Injection, Datei-Uploads).
|
||||
# Bewusst NUR wenn mind. eine Domain WAF nutzt (.WAFEnabled) — sonst
|
||||
# kein RAM-pro-Connection-Overhead (vgl. Kommentar am Body-Size-Cap).
|
||||
# Puffer bis tune.bufsize (~16KB); größere Bodies werden zur Inspektion
|
||||
# gekappt — typische Injection-Payloads sind klein.
|
||||
option http-buffer-request
|
||||
# WAF: SPOE-Filter — edgeguard-waf inspiziert jeden Request.
|
||||
# filter muss vor allen http-request/http-response-Direktiven stehen.
|
||||
filter spoe engine edgeguard-waf config /etc/edgeguard/haproxy/coraza-spoe.cfg
|
||||
|
||||
Reference in New Issue
Block a user