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;
|
gzip off;
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
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)
|
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):
|
**Plain Nginx** (falls eigener Nginx statt NPM):
|
||||||
```nginx
|
```nginx
|
||||||
location /api/ {
|
location /api/ {
|
||||||
@@ -250,13 +259,21 @@ location /api/ {
|
|||||||
proxy_pass http://backend:3010;
|
proxy_pass http://backend:3010;
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
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
|
```bash
|
||||||
|
# 1) gzip ist für /api/ deaktiviert (sollte leer sein)
|
||||||
curl -sI -H 'Accept-Encoding: gzip' https://kundencenter.deine-domain.de/api/health \
|
curl -sI -H 'Accept-Encoding: gzip' https://kundencenter.deine-domain.de/api/health \
|
||||||
| grep -i content-encoding
|
| 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
|
## Developer-Tools aktivieren
|
||||||
|
|||||||
Reference in New Issue
Block a user