0Pricing
Cryptology Academy · Lektion

Best Practices für die sichere JWT-Implementierung

Speichern, rotieren und widerrufen Sie JWTs sicher in Produktivanwendungen.

Best Practices für die sichere JWT-Implementierung ist eine kostenlose Cryptology Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cryptology Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cryptology Academy-Kurs umfasst insgesamt 4 Lektionen.

Grundprinzip

JWTs sind nur so sicher wie ihre Implementierung. Die Spezifikation ist flexibel; diese Flexibilität schafft Schwachstellen. Befolgen Sie die folgenden Best Practices, um die häufigen Fehler zu vermeiden, die in Produktivsystemen zu Umgehungen der Authentifizierung geführt haben.

Algorithmus fest vorgeben

Geben Sie den erwarteten Algorithmus immer ausdrücklich an: jwt.decode(token, key, algorithms=["RS256"]). Lesen Sie den Algorithmus niemals aus dem Token-Header aus, um den Verifizierungsschlüssel oder den Codepfad auszuwählen. Dies verhindert alg=none- und Schlüsselverwechslungsangriffe.

Kurze Gültigkeitsdauer und Refresh-Tokens

Access-Tokens: 15–60 Minuten. Refresh-Tokens: 7–30 Tage, gespeichert in httpOnly-Cookies (nicht in localStorage). Nach Ablauf verwendet der Client das Refresh-Token, um ohne erneute Authentifizierung ein neues Access-Token vom Authentifizierungsserver abzurufen.

Validierung von Audience und Issuer

Validieren Sie aud (Audience), um sicherzustellen, dass das Token für Ihren Dienst und nicht für einen anderen ausgestellt wurde. Validieren Sie iss (Issuer) gegen die URL Ihres Authentifizierungsservers. Ohne diese Prüfungen würde ein von einer anderen Anwendung stammendes Token akzeptiert, wenn es mit demselben Schlüssel signiert wurde.

Speicherung von Token

Access-Tokens im Arbeitsspeicher (JS-Variable) — beim Schließen des Tabs gelöscht. Refresh-Tokens in httpOnly-, Secure-, SameSite=Strict-Cookies — für JavaScript nicht zugänglich. Speichern Sie JWTs niemals in localStorage — XSS kann sie stehlen.

Widerrufsstrategie

JWTs sind zustandslos — es gibt keine integrierte Widerrufsmöglichkeit. Optionen: Führen Sie eine Widerrufsliste (Denylist), die bei jeder Anfrage geprüft wird; verwenden Sie eine sehr kurze Gültigkeitsdauer; oder verwenden Sie in Hochsicherheitskontexten opake Token mit zentraler Abfrage.

Schlüsselrotation

Rotieren Sie Signaturschlüssel regelmäßig. Veröffentlichen Sie mehrere Schlüssel mit unterschiedlichen kid-Werten in JWKS. Während der Rotation: Stellen Sie neue Token mit der neuen kid aus, lassen Sie den alten Schlüssel aktiv, bis alte Token abgelaufen sind, und entfernen Sie ihn anschließend aus JWKS.

Sensible Daten in Nutzdaten

Speichern Sie niemals sensible Daten (Passwörter, SSNs, Kreditkartendaten) in den JWT-Nutzdaten — sie sind base64url-codiert, nicht verschlüsselt. Verwenden Sie JWE (JSON Web Encryption), wenn Sie verschlüsselte Claims benötigen, oder bewahren Sie sensible Daten serverseitig auf.

Nur HTTPS

Übertragen Sie JWTs ausschließlich über HTTPS. Ein über HTTP abgefangenes JWT ermöglicht die vollständige Umgehung der Authentifizierung. Setzen Sie das Secure-Flag für Cookies. Verwenden Sie HSTS, um eine Protokollherabstufung zu verhindern. Protokollieren Sie niemals vollständige JWT-Zeichenfolgen in Serverprotokollen.

Auswahl der Bibliothek

Verwenden Sie gut gepflegte Bibliotheken: PyJWT 2+, python-jose, auth0/node-jsonwebtoken 9+, Nimbus JOSE + JWT (Java). Vermeiden Sie es, die JWT-Verifizierung selbst zu implementieren. Prüfen Sie regelmäßig CVE-Datenbanken auf Schwachstellen in Bibliotheken.

Tests

Testen Sie alle Angriffsvektoren: Senden Sie ein alg=none-Token, ein Token mit RS256→HS256-Verwechslung, ein abgelaufenes Token, ein Token mit falscher Audience und manipulierten Nutzdaten. Verwenden Sie jwt.io, um Test-Token zu erstellen. Fügen Sie Integrationstests hinzu, die bestätigen, dass diese mit 401 abgewiesen werden.

Kurztest

Wo sollten Refresh-Tokens in einer Webanwendung gespeichert werden?

Zusammenfassung

Die sichere Verwendung von JWTs erfordert festgelegte Algorithmen, eine kurze Gültigkeitsdauer von Access-Tokens, die Speicherung von Refresh-Tokens in httpOnly-Cookies, die Validierung von Audience und Issuer sowie Schlüsselrotation. Als Nächstes: kryptografische Secret-Sharing-Verfahren.

Häufig gestellte Fragen

Ist die Lektion „Best Practices für die sichere JWT-Implementierung“ kostenlos?

Ja — der vollständige Text von „Best Practices für die sichere JWT-Implementierung“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cryptology Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cryptology Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Best Practices für die sichere JWT-Implementierung“?

Speichern, rotieren und widerrufen Sie JWTs sicher in Produktivanwendungen. Du übst Cryptology Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Cryptology Academy zu starten?

Keine Vorkenntnisse erforderlich. Cryptology Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Best Practices für die sichere JWT-Implementierung“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Cryptology Academy-Lektion Code schreiben und ausführen?

Ja. Jede Cryptology Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. JWT-Aufbau: Header, Payload, Signatur
  2. HS256 vs. RS256: symmetrische und asymmetrische JWTs
  3. JWT-Schwachstellen: alg=none und Schlüsselverwechslung
  4. Best Practices für die sichere JWT-Implementierung
← Zurück zu Cryptology Academy