[Security] Token in HttpOnly+SameSite-Cookie statt sessionStorage #28

Open
opened 2026-05-27 12:59:30 +02:00 by ferdi2go · 0 comments
Owner

Problem

Das Bearer-Token liegt aktuell in sessionStorage (index.html:808,1092). Bei einer XSS-Luecke ist es per JS lesbar.

Das DOM-XSS aus #15 ist behoben - aber als Defense-in-Depth sollte das Token in einem HttpOnly+Secure+SameSite=Strict-Cookie liegen.

Aufwand

Groesserer Umbau:

  • /login setzt Cookie via Set-Cookie-Header
  • Middleware liest Token aus Cookie statt aus Authorization-Header (oder beide unterstuetzt)
  • Frontend apiFetch muss credentials: "include" setzen
  • CORS-Konfig braucht allow_credentials=True und konkrete Origins (kein *)
  • Logout-Route zum Cookie loeschen
  • sessionStorage-Code entfernen

Ausgliederung

Ausgegliedert aus #17 (Audit), weil dort CORS-Hardening und Security-Header eigenstaendig erledigt wurden.

## Problem Das Bearer-Token liegt aktuell in `sessionStorage` (`index.html:808,1092`). Bei einer XSS-Luecke ist es per JS lesbar. Das DOM-XSS aus #15 ist behoben - aber als Defense-in-Depth sollte das Token in einem HttpOnly+Secure+SameSite=Strict-Cookie liegen. ## Aufwand Groesserer Umbau: - `/login` setzt Cookie via `Set-Cookie`-Header - Middleware liest Token aus Cookie statt aus `Authorization`-Header (oder beide unterstuetzt) - Frontend `apiFetch` muss `credentials: "include"` setzen - CORS-Konfig braucht `allow_credentials=True` und konkrete Origins (kein `*`) - Logout-Route zum Cookie loeschen - sessionStorage-Code entfernen ## Ausgliederung Ausgegliedert aus #17 (Audit), weil dort CORS-Hardening und Security-Header eigenstaendig erledigt wurden.
ferdi2go added the priority: mediumsecurity labels 2026-05-27 12:59:30 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ferdi2go/OnlyFrames#28