JWT (JSON Web Token) Sicherheit: Korrekte und falsche Nutzung
12. September 2026
Ein JWT (JSON Web Token) ist ein signiertes, selbstprüfendes Token, das Identitäts- und Berechtigungsdaten trägt. Es ist in APIs und der Sitzungsverwaltung sehr verbreitet. Doch die Sicherheit eines JWT hängt vollständig davon ab, korrekt validiert zu werden; klassische Fehler können bis zum Authentifizierungs-Bypass führen.
Wie ein JWT funktioniert
Ein JWT hat drei Teile: Header, Payload und Signatur. Der Header nennt den Signaturalgorithmus, die Payload trägt Claims (wer, Ablauf, Berechtigungen), die Signatur bestätigt, dass das Token nicht verändert wurde. Der Server entscheidet über die Signaturvalidierung, ob er dem Token vertraut.
Kritischer Punkt: Die Payload eines JWT ist signiert, aber nicht verschlüsselt. Jeder kann ihren Inhalt lesen (base64); die Signatur garantiert nur, dass er nicht geändert wurde. Legen Sie daher keine Geheimnisse in ein JWT.
Klassische Sicherheitsfehler
alg: noneakzeptieren: Manche Bibliotheken überspringen die Signaturprüfung, wenn der Header “none” sagt. Ein Angreifer sendetalg: nonemit einem unsignierten Token, um sich als beliebig auszugeben. Der Server muss festlegen, welchen Algorithmus er akzeptiert; er darf dem Algorithmus im Token-Header nicht vertrauen.- Algorithmus-Verwechslung (RS256 → HS256): Erwartet der Server asymmetrische Prüfung (RS256), kann ein Angreifer ein symmetrisches (HS256) Token senden und den öffentlichen Schlüssel als “Geheimnis” nutzen. Pinnen Sie den erwarteten Algorithmus streng.
- Schwaches Signaturgeheimnis: Ein vorhersehbares/kurzes Geheimnis bei HS256 lässt die Signatur knacken. Nutzen Sie ein starkes, zufälliges Geheimnis.
- Ablauf- und Widerrufsprobleme: JWTs sind meist zustandslos — gültig bis zum Ablauf. Langlebige Tokens sind bei Diebstahl gefährlich. Nutzen Sie kurzlebige Access-Tokens plus kontrollierten Refresh; erwägen Sie einen Widerrufsmechanismus für kritische Fälle.
- Unsichere Speicherung: Das Token in XSS-exponiertem
localStoragezu halten, verwandelt ein XSS in eine Kontoübernahme. Erwägen Sie je nach Kontext sicherere Optionen wieHttpOnly-Cookies.
Zusammenfassung
JWTs sind mächtig, aber “alles hängt an der Validierung”. Sichere Nutzung: Der Server pinnt den akzeptierten Algorithmus (alg: none und Algorithmus-Verwechslung verhindern), ein starkes Signaturgeheimnis, kurze Ablaufzeiten und keine Geheimnisse in der Payload (nicht verschlüsselt). Speichern Sie Tokens sicher; ein JWT ersetzt keine Autorisierungsprüfung.
Quellen: RFC 8725 (JWT Best Current Practices), OWASP JWT Cheat Sheet.
Ist die JWT-Validierung in Ihren APIs korrekt konfiguriert? Die Active Verification von CyberTestify bewertet authentifizierte API-Abläufe.