feat(security): Haertung nach OWASP Top 10 (#024)
Drei echte Luecken gefunden und geschlossen: 1. Die 27 Server Actions verliessen sich allein auf proxy.ts. Jede prueft die Sitzung jetzt selbst und schlaegt gegen die Datenbank nach, ob das Konto noch gilt - damit lassen sich Sitzungen ueberhaupt erst widerrufen. 2. Der Anmelde-Endpunkt prueft die Herkunft des Formulars; vorher war Login-CSRF moeglich. 3. Content-Security-Policy mit Nonce je Anfrage und strict-dynamic. Dazu: npm audit ist ohne Befund (mysql2 und deepmerge-ts per overrides angehoben statt Prisma zurueckzustufen), eine Benutzerverwaltung fuer die Kommandozeile und docs/sicherheit.md mit allem, was bewusst offen bleibt - keine Rollen, keine Zwei-Faktor-Anmeldung. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+3
-1
@@ -25,12 +25,14 @@ describe("Sitzungen", () => {
|
||||
});
|
||||
|
||||
const sitzung = await sitzungLesen(token);
|
||||
expect(sitzung).toEqual({
|
||||
expect(sitzung).toMatchObject({
|
||||
benutzerId: "b1",
|
||||
email: "admin@example.de",
|
||||
name: "Florian",
|
||||
herkunft: "passwort",
|
||||
});
|
||||
// Der Ausstellungszeitpunkt entscheidet, ob ein Widerruf die Sitzung trifft (#024).
|
||||
expect(sitzung?.ausgestelltAm.getTime()).toBeLessThanOrEqual(Date.now());
|
||||
});
|
||||
|
||||
it("weist ein verändertes oder fremd signiertes Token ab", async () => {
|
||||
|
||||
Reference in New Issue
Block a user