CalquioCalquio

Suche

Suche nach Rechnern und Tools

JWT-Decoder

JSON Web Tokens dekodieren und inspizieren. Header, Payload und Ablaufstatus anzeigen.

Code-Beispiele
// Decode JWT (without verification)
function decodeJWT(token) {
const [header, payload] = token.split('.').slice(0, 2);
return {
header: JSON.parse(atob(header)),
payload: JSON.parse(atob(payload))
};
}
// Using jsonwebtoken library
// npm install jsonwebtoken
const jwt = require('jsonwebtoken');
const decoded = jwt.decode(token);
const verified = jwt.verify(token, secret);

Ähnliche Rechner

Was ist ein JWT?

Ein JWT (JSON Web Token, ausgesprochen "Dschot") ist wie ein digitaler Reisepass. Es ist eine kompakte, eigenständige Methode, um Informationen sicher zwischen Parteien zu übertragen.

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4ifQ.
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

Sieht wie Kauderwelsch aus? Es sind tatsächlich drei base64-codierte Teile, getrennt durch Punkte!

Warum JWTs existieren:

  • Zustandslose Authentifizierung - Keine Notwendigkeit, Sitzungen auf dem Server zu speichern
  • Cross-Domain - Funktioniert über verschiedene Dienste
  • Eigenständig - Alle Infos sind im Token selbst
  • Kompakt - Klein genug, um in Headers/URLs zu senden

JWT-Struktur erklärt

Ein JWT hat drei Teile: Header.Payload.Signatur

1. Header

{
  "alg": "HS256",
  "typ": "JWT"
}

Sagt uns den Token-Typ und Signaturalgorithmus.

2. Payload

{
  "sub": "1234567890",
  "name": "Max Mustermann",
  "admin": true,
  "exp": 1516242622
}

Enthält die tatsächlichen Daten (genannt "Claims").

3. Signatur Verifiziert, dass das Token nicht manipuliert wurde.

Jeder kann ein JWT lesen! Der Payload ist nur base64-codiert, nicht verschlüsselt. Legen Sie niemals sensible Daten (Passwörter, Kreditkarten) in ein JWT.

Gängige JWT-Claims

Registrierte Claims (Standard)

ClaimNameBeschreibung
issIssuerWer das Token erstellt hat
subSubjectWer/was das Token betrifft
audAudienceWer das Token akzeptieren sollte
expExpirationWann das Token abläuft
iatIssued AtWann das Token erstellt wurde

Wie JWT-Authentifizierung funktioniert

1. Benutzer meldet sich mit Anmeldedaten an
2. Server erstellt und gibt JWT zurück
3. Benutzer sendet JWT mit jeder Anfrage
4. Server verifiziert JWT und antwortet

Warum das besser ist als Sessions:

  • Server muss nichts speichern
  • Funktioniert über mehrere Server (Microservices)
  • Einfach horizontal zu skalieren

JWT-Sicherheitsüberlegungen

JWTs sind standardmäßig nicht verschlüsselt! Jeder kann den Payload decodieren und lesen. Nur die Signatur verhindert Manipulation.

Häufige JWT-Schwachstellen:

1. None-Algorithmus-Angriff Angreifer setzen Algorithmus auf "none", um Signaturverifizierung zu umgehen. Lösung: Algorithmus immer auf dem Server validieren.

2. Schwacher geheimer Schlüssel Schwache Geheimnisse wie "secret" oder "passwort" können per Brute-Force geknackt werden. Lösung: Verwenden Sie 256+ Bit zufällige Schlüssel.

3. Kein Ablaufdatum Tokens, die nie ablaufen, sind ein Sicherheitsrisiko. Lösung: Immer exp Claim setzen (kurzlebig: 15min-1Stunde).

Sicherheits-Best-Practices:

  • Starke, zufällige geheime Schlüssel verwenden (mindestens 256 Bits)
  • Tokens kurzlebig halten (15 Minuten für Access-Tokens)
  • Refresh-Tokens für lange Sitzungen verwenden
  • Immer HTTPS verwenden
  • Alle Claims serverseitig validieren