Security

Mehr Login-Sicherheit: Sessions werden bei jedem Auth-Schritt rotiert

2. Juni 2026

Defense-in-Depth gegen Session-Fixation. Nach jedem Login, Signup, Magic-Link-Consume und 2FA-Verify löscht Frames die vorher gesetzte Session-Row in der Datenbank und stellt eine frische Session-ID aus.

War vorher nur ein theoretisches Risiko — Frames setzt keine Pre-Auth-Cookies, also gab es nie eine „untergeschobene" Session, die ein Angreifer kapern könnte. Trotzdem ist Session-Rotation bei Auth-Stufenwechseln Best-Practice (OWASP ASVS V3.2.1), und jetzt geschlossen.

Was sich für dich ändert: nichts. Login fühlt sich identisch an. Die alte Session-Row verschwindet sauber aus der DB statt als Orphan zu verrotten — kleiner Bonus für die Hygiene unserer Session-Tabelle.

Technisch. Neuer Helper discardPreAuthSession(cookies) in src/lib/server/sessions.ts wird in allen vier Auth-Pfaden aufgerufen, bevor createPhotographerSession die neue Session erzeugt. Bei DB-Fehler bleibt der Login funktional — die orphan Row läuft via expires_at automatisch aus.