Security Audit: Credentials aus Code entfernen, Haertung #119

Closed
opened 2026-04-11 00:19:42 +02:00 by tobias · 2 comments
Owner

Kritisch

  • Keycloak Admin-Passwort im Klartext in main.py (Zeilen 470, 505, 533) — muss in ENV-Variable
  • SMTP-Credentials ebenfalls in ENV statt Code

Hoch

  • Input-Validation: alle Form-Inputs und Query-Parameter pruefen
  • CORS-Header pruefen (aktuell keine explizite Config)
  • Rate-Limiting auf Auth-Endpoints (Login, Register)
  • Cookie-Flags: HttpOnly, Secure, SameSite auf access_token Cookie

Mittel

  • CSP-Header (Content-Security-Policy)
  • X-Frame-Options / X-Content-Type-Options Header
  • Admin-Endpoints: require_admin konsistent pruefen
  • SQL-Injection-Review (aiosqlite parametrisierte Queries)

Niedrig

  • Dependency-Audit (pip-audit)
  • Docker: non-root User im Container
  • Log-Sanitization (keine Tokens/Passwoerter in Logs)
## Kritisch - [ ] **Keycloak Admin-Passwort im Klartext** in `main.py` (Zeilen 470, 505, 533) — muss in ENV-Variable - [ ] SMTP-Credentials ebenfalls in ENV statt Code ## Hoch - [ ] Input-Validation: alle Form-Inputs und Query-Parameter pruefen - [ ] CORS-Header pruefen (aktuell keine explizite Config) - [ ] Rate-Limiting auf Auth-Endpoints (Login, Register) - [ ] Cookie-Flags: HttpOnly, Secure, SameSite auf access_token Cookie ## Mittel - [ ] CSP-Header (Content-Security-Policy) - [ ] X-Frame-Options / X-Content-Type-Options Header - [ ] Admin-Endpoints: require_admin konsistent pruefen - [ ] SQL-Injection-Review (aiosqlite parametrisierte Queries) ## Niedrig - [ ] Dependency-Audit (pip-audit) - [ ] Docker: non-root User im Container - [ ] Log-Sanitization (keine Tokens/Passwoerter in Logs)
Author
Owner

Kritisch erledigt: Keycloak-Admin-PW aus main.py entfernt, via ENV-Variable + keycloak_admin_token() Helper in auth.py. Hardcoded sso.toppyr.de URLs durch settings.keycloak_url ersetzt. Verbleibend: Cookie-Flags, CSP-Header, Rate-Limiting auf Auth, pip-audit.

Kritisch erledigt: Keycloak-Admin-PW aus main.py entfernt, via ENV-Variable + keycloak_admin_token() Helper in auth.py. Hardcoded sso.toppyr.de URLs durch settings.keycloak_url ersetzt. Verbleibend: Cookie-Flags, CSP-Header, Rate-Limiting auf Auth, pip-audit.
Author
Owner

Erledigt

  • Keycloak-Admin-PW aus main.py → ENV (KEYCLOAK_ADMIN_USER, KEYCLOAK_ADMIN_PASSWORD)
  • Hardcoded sso.toppyr.de URLs → settings.keycloak_url
  • Cookie: HttpOnly + Secure + SameSite=Lax (war schon)
  • CSP-Header mit frame-ancestors none (war schon)
  • X-Frame-Options, X-Content-Type-Options, Referrer-Policy (war schon)
  • Rate-Limiting auf /api/analyze-drucksache (10/min)

Noch offen

  • pip-audit (Dependency-Check)
  • Docker non-root User
  • Rate-Limiting auf /api/auth/register (Brute-Force-Schutz)
  • SMTP-Credentials auch in ENV statt Keycloak-Realm-Config
## Erledigt - [x] Keycloak-Admin-PW aus main.py → ENV (KEYCLOAK_ADMIN_USER, KEYCLOAK_ADMIN_PASSWORD) - [x] Hardcoded sso.toppyr.de URLs → settings.keycloak_url - [x] Cookie: HttpOnly + Secure + SameSite=Lax (war schon) - [x] CSP-Header mit frame-ancestors none (war schon) - [x] X-Frame-Options, X-Content-Type-Options, Referrer-Policy (war schon) - [x] Rate-Limiting auf /api/analyze-drucksache (10/min) ## Noch offen - [ ] pip-audit (Dependency-Check) - [ ] Docker non-root User - [ ] Rate-Limiting auf /api/auth/register (Brute-Force-Schutz) - [ ] SMTP-Credentials auch in ENV statt Keycloak-Realm-Config
Sign in to join this conversation.
No description provided.