docs: README – more_clear_headers Server X-Served-By dazu (Banner weg)
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) <noreply@anthropic.com>
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user