JWT-Authentifizierung prüfen: typische Fehler und korrigierter Code
Prüfe deine JWT-Implementierung auf typische Fehler (Algorithmen, Ablauf, Speicherung, Refresh Tokens, Widerruf) und erhalte Befunde nach Schweregrad, korrigierten Code und Tests. Entwickelt für ChatGPT, Claude, Gemini und Microsoft Copilot. Er enthält 4 anpassbare Variablen und lässt sich kostenlos mit einem Klick kopieren.
Experte · Code · Redaktionelle Prüfung ausstehend
Prompt
Handle als Application-Security-Engineer mit Schwerpunkt API-Authentifizierung.
Prüfe diese JWT-Authentifizierung:
{{code}}
Kontext:
- Stack und JWT-Bibliothek: {{stack}}
- Client-Typ: {{client}}
- Aussteller der Tokens: {{aussteller}}
Liefere:
1. Befunde mit Schweregrad (kritisch, hoch, mittel, niedrig), betroffenem Ausschnitt, dem Risiko in einem Satz und der Korrektur. Prüfe mindestens:
- Signaturprüfung mit expliziter Allowlist erlaubter Algorithmen; Ablehnung von `alg: none` und von Verwechslungen zwischen symmetrischen und asymmetrischen Algorithmen.
- Validierung von `exp`, `nbf`, `iss` und `aud` mit kleiner Toleranz für Uhrabweichungen.
- Lebensdauer des Access Tokens sowie Refresh Tokens mit Rotation und Erkennung von Wiederverwendung.
- Widerruf und Logout: Sperrliste, Session-Version oder kurzlebige Tokens.
- Speicherung im Client: `localStorage` gegenüber einem `HttpOnly`-, `Secure`-, `SameSite`-Cookie und der jeweils nötige CSRF-Schutz.
- Secrets und Schlüssel: Stärke, Speicherort, Rotation mit `kid` oder JWKS.
- Sensible Daten im Payload (nur kodiert, nicht verschlüsselt) und Tokengröße.
- Fehlerbehandlung: Meldungen ohne Informationslecks und Logs ohne vollständige Tokens.
2. Korrigierten Code für meinen Stack mit einer gepflegten Bibliothek und ohne selbstgebaute Kryptografie.
3. Automatisierte Tests für jeden kritischen oder hohen Befund: abgelaufenes Token, ungültige Signatur, nicht erlaubter `alg`, falsche Audience und wiederverwendetes Refresh Token.
4. Eine Reihenfolge der Korrekturen, falls ich nicht alles auf einmal umsetzen kann.
Einschränkungen:
- Behaupte nicht, das System sei jetzt vollständig sicher; empfiehl vor der Produktion ein Security-Review oder einen Penetrationstest, wenn sensible Daten verarbeitet werden.
- Fehlt ein Teil des Ablaufs (Ausstellung, Refresh oder Logout), frag danach, bevor du Schlüsse ziehst, oder markiere ihn mit [AUSFÜLLEN].
- Gib echte Secrets aus dem Code niemals wieder: ersetze sie durch Platzhalter.So verwenden Sie ihn
- Füge den Code für Ausstellung, Prüfung, Refresh und Logout ein und ersetze vorher alle echten Secrets.
- Gib an, welcher Client die API nutzt und wo er das Token speichert.
- Behebe zuerst die kritischen Befunde und nimm ihre Tests in deine CI auf.
Anwendungsbeispiel
Stack: Node.js mit Express und jsonwebtoken · Client: SPA auf einer anderen Subdomain · Aussteller: die API selbst · Code: Auth-Middleware und /refresh-Endpunkt.
Beispielergebnis
1. Befunde
| Schwere | Ausschnitt | Risiko | Lösung |
|---|---|---|---|
| Hoch | jwt.verify(token, secret) | Keine explizite Algorithmen-Allowlist: Sie verlassen sich auf Bibliotheks-Defaults | algorithms: ['HS256'] |
| Hoch | — | iss und aud ungeprüft: Tokens für andere Dienste werden akzeptiert | issuer und audience |
| Mittel | req.user = payload | Gesamter Payload wird blind übernommen | Nur sub und role kopieren |
| Mittel | — | verify wirft, niemand fängt ab | try/catch und generisches 401 |
| [AUSFÜLLEN] | — | Ausstellung, Refresh und Logout fehlen | Dieser Code wird benötigt |
2. Korrigierter Code
const jwt = require('jsonwebtoken');
const VERIFY_OPTS = {
algorithms: ['HS256'], // nie dem alg-Header des Tokens vertrauen
issuer: 'https://api.beispiel.de', // [AUSFÜLLEN]
audience: 'beispiel-spa', // [AUSFÜLLEN]
clockTolerance: 30, // Sekunden Uhrabweichung
};
function requireAuth(req, res, next) {
const token = req.cookies?.access_token; // HttpOnly-, Secure-, SameSite-Cookie
if (!token) return res.status(401).json({ error: 'unauthorized' });
try {
const { sub, role } = jwt.verify(token, process.env.JWT_SECRET, VERIFY_OPTS);
req.user = { id: sub, role };
return next();
} catch {
return res.status(401).json({ error: 'unauthorized' }); // keine Details an den Client
}
}
Das Token aus einem Cookie zu lesen erfordert cookie-parser und CSRF-Schutz für schreibende Routen…
Wichtige Fakten
- Kategorie
- Programmierung & Entwicklung · APIs
- Ausgabetyp
- Code
- Niveau
- Experte
- Entwickelt für
- ChatGPT, Claude, Gemini und Microsoft Copilot
- Verifiziert in
- Redaktionelle Prüfung ausstehend
- Variablen
- Aktueller Code, Stack und Bibliothek, Client-Typ und Aussteller der Tokens
- Sprache
- Deutsch
- Preis
- Kostenlos, ohne Anmeldung
- Aktualisiert
- 07.11.2026
Häufig gestellte Fragen
JWT in localStorage oder in einem Cookie speichern?
localStorage ist bei einer XSS-Lücke angreifbar. Ein HttpOnly-Cookie ist für JavaScript nicht lesbar, braucht aber CSRF-Schutz und eine korrekte SameSite-Einstellung. Der Prompt erklärt, was jede Option für deinen Fall bedeutet.
Wie melde ich Nutzer ab, wenn sich JWTs nicht invalidieren lassen?
Mit kurzlebigen Access Tokens und serverseitig widerrufbaren Refresh Tokens oder einer Session-Version pro Nutzer, die bei jeder Anfrage geprüft wird. So lässt sich der Zugriff sofort beenden.
Wofür ist dieser Prompt gedacht?
Prüfe deine JWT-Implementierung auf typische Fehler (Algorithmen, Ablauf, Speicherung, Refresh Tokens, Widerruf) und erhalte Befunde nach Schweregrad, korrigierten Code und Tests.
Mit welchen KI-Tools funktioniert er?
Er ist für ChatGPT, Claude, Gemini und Microsoft Copilot entwickelt. Wir haben ihn in diesen Tools noch nicht überprüft, daher können die Ergebnisse variieren.
Wie passe ich den Prompt an?
Klicken Sie auf „Anpassen“ und füllen Sie die Variablen aus (Aktueller Code, Stack und Bibliothek, Client-Typ und Aussteller der Tokens). Der Text wird sofort aktualisiert und lässt sich anschließend mit einem Klick kopieren. Die Werte werden nur in Ihrem Browser gespeichert.
Brauche ich Erfahrung, um ihn zu verwenden?
Er ist für Experten: Er richtet sich an Personen mit Erfahrung im Thema, die das Ergebnis beurteilen und anpassen können.
Ist dieser Prompt kostenlos?
Ja. Jeder Prompt von HomeCasa Prompts ist kostenlos, ohne Anmeldung und ohne Abonnement. Sie können ihn auch in beruflichen Projekten verwenden.
Kann ich der KI-Ausgabe vertrauen?
Betrachten Sie sie als hochwertigen Entwurf: Prüfen Sie Daten, Zahlen und wichtige Aussagen immer, bevor Sie etwas veröffentlichen oder Entscheidungen treffen.