Security Headers: X-Frame-Options, CSP, HSTS implementieren #85

Open
opened 2026-03-30 20:21:40 +00:00 by David · 0 comments
Collaborator

Beschreibung

backend/main.py setzt keine HTTP Security Headers. Es fehlen: X-Frame-Options, Content-Security-Policy, X-Content-Type-Options, Strict-Transport-Security, X-XSS-Protection.

Hintergrund

Ohne Security Headers ist die Anwendung anfällig für Clickjacking (iframe-Einbettung), MIME-Type-Sniffing und andere Browser-basierte Angriffe. Dies ist ein Standard-Sicherheitscheck bei Penetration Tests.

Akzeptanzkriterien

  • Middleware die alle Responses um Security Headers ergänzt
  • X-Frame-Options: DENY
  • X-Content-Type-Options: nosniff
  • Referrer-Policy: strict-origin-when-cross-origin
  • Content-Security-Policy mit sinnvollen Defaults
  • HSTS optional (nur wenn HTTPS konfiguriert)
  • Test: Response enthält alle erwarteten Headers

Technische Hinweise

  • Betroffene Datei: backend/main.py
  • Ansatz: FastAPI Middleware @app.middleware("http")
  • Alternativ: secure Library für Python
  • Migration nötig: nein

Aufwand: S

## Beschreibung `backend/main.py` setzt keine HTTP Security Headers. Es fehlen: `X-Frame-Options`, `Content-Security-Policy`, `X-Content-Type-Options`, `Strict-Transport-Security`, `X-XSS-Protection`. ## Hintergrund Ohne Security Headers ist die Anwendung anfällig für Clickjacking (iframe-Einbettung), MIME-Type-Sniffing und andere Browser-basierte Angriffe. Dies ist ein Standard-Sicherheitscheck bei Penetration Tests. ## Akzeptanzkriterien - [ ] Middleware die alle Responses um Security Headers ergänzt - [ ] `X-Frame-Options: DENY` - [ ] `X-Content-Type-Options: nosniff` - [ ] `Referrer-Policy: strict-origin-when-cross-origin` - [ ] `Content-Security-Policy` mit sinnvollen Defaults - [ ] HSTS optional (nur wenn HTTPS konfiguriert) - [ ] Test: Response enthält alle erwarteten Headers ## Technische Hinweise - Betroffene Datei: `backend/main.py` - Ansatz: FastAPI Middleware `@app.middleware("http")` - Alternativ: `secure` Library für Python - Migration nötig: nein ## Aufwand: S
Sign in to join this conversation.
No description provided.