Files
timemaster/backend/app/core
patrickandClaude Sonnet 5 1d163cc299
Security Audit / Python Dependency Audit (push) Canceled after 0s
Security Audit / Node.js Dependency Audit (push) Canceled after 0s
Security Audit / Frontend Build (tsc + vite) (push) Canceled after 0s
fix(security): Audit-Nachzug – Rate-Limit, X-Real-IP-Vertrauen, Indizes
Security-Audit 2026-09-10 (siehe Ed25519-Reinstall-Commits):
- Rate-Limit 10/min auf POST /kiosk/my-qr-token (Q-1) – kompromittiertes
  Employee-JWT konnte sonst unbegrenzt QR-Login-Tokens erzeugen.
- _get_client_ip vertraut X-Real-IP nur noch, wenn die Verbindung selbst
  von 127.0.0.1 kommt (I-1) – sonst könnte ein Client den Header selbst
  setzen und die Kiosk-IP-Whitelist umgehen.
- Migration 0047: Unique-Index auf kiosk_devices.device_token_hash (B-2,
  war Seq-Scan pro Bearer-Request), Index auf time_entries.kiosk_device_id
  (K-1). RLS auf kiosk_devices bereits seit Migration 0024 vorhanden,
  K-1-Verdacht einer RLS-Lücke damit ausgeräumt.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dzdm3EWeNdYFUuXFRJryA1
2026-09-10 15:33:12 +02:00
..