From 083913cadb45c01f1a84a062a5d46e23ca9effe8 Mon Sep 17 00:00:00 2001 From: duffyduck Date: Sat, 16 May 2026 13:36:49 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20README=20=E2=80=93=20more=5Fclear=5Fhea?= =?UTF-8?q?ders=20Server=20X-Served-By=20dazu=20(Banner=20weg)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Im selben /api/-Custom-Location-Block des BREACH-Fixes auch gleich die Server-Banner-Hygiene ergänzt: `more_clear_headers Server X-Served-By;` über das headers-more-Modul (bei NPM standardmäßig dabei) entfernt die Information-Disclosure-Header, die Pentest-Tools wie Nikto sonst als low-Finding flaggen. Plus zusätzlicher Verifikations-curl, der prüft dass beide Header weg sind. Co-Authored-By: Claude Opus 4.7 (1M context) --- README.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index fcc084b9..123fc551 100644 --- a/README.md +++ b/README.md @@ -240,9 +240,18 @@ Einfallstor mehr. gzip off; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; + # Information-Disclosure-Header weg (Pentest-Hygiene): + more_clear_headers Server X-Served-By; ``` 6. **Save** (Location), **Save** (Proxy-Host) +> Der `more_clear_headers`-Befehl kommt aus dem `headers-more`-Modul, das +> bei NPM standardmäßig dabei ist. Damit verschwinden die Banner +> `Server: openresty` und `x-served-by: …` aus den Responses – Pentest- +> Tools können den eingesetzten Webserver nicht mehr direkt aus dem Header +> ablesen. Wer das auch auf der Hauptlocation will, kann denselben Eintrag +> zusätzlich im **Advanced**-Tab des Proxy-Hosts setzen. + **Plain Nginx** (falls eigener Nginx statt NPM): ```nginx location /api/ { @@ -250,13 +259,21 @@ location /api/ { proxy_pass http://backend:3010; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; + more_clear_headers Server X-Served-By; # braucht headers-more-Modul } +# Optional global im server { … }-Block: +server_tokens off; ``` -**Verifikation** (sollte leer sein, kein `content-encoding: gzip` mehr): +**Verifikation:** ```bash +# 1) gzip ist für /api/ deaktiviert (sollte leer sein) curl -sI -H 'Accept-Encoding: gzip' https://kundencenter.deine-domain.de/api/health \ | grep -i content-encoding + +# 2) Server-/x-served-by-Banner sind weg (sollte leer sein) +curl -sI https://kundencenter.deine-domain.de/api/health \ + | grep -iE '^(server|x-served-by):' ``` ## Developer-Tools aktivieren