Skip to content

Die JWT-Authentifizierungsmethode ist eine Lüge

Fast jeder Entwickler greift standardmäßig auf JWTs für die Benutzerauthentifizierung zurück, aber sie bauen eine tickende Zeitbombe. Entdecken Sie die 'langweilige', aber sichere Alternative, die tatsächlich funktioniert.

Theo Brandt
Hero image for: Die JWT-Authentifizierungsmethode ist eine Lüge

Zusammenfassung / Kernpunkte

  • Fast jeder Entwickler greift standardmäßig auf JWTs für die Benutzerauthentifizierung zurück, aber sie bauen eine tickende Zeitbombe.
  • Entdecken Sie die 'langweilige', aber sichere Alternative, die tatsächlich funktioniert.

Der zustandslose Mythos, an den wir alle glaubten

JWTs, oder JSON Web Tokens, verkauften uns eine schöne Lüge: das Versprechen der zustandslosen Authentifizierung. Das Konzept war elegant. Ein Server überreicht Ihnen beim Login ein kleines, signiertes Token und vergisst dann sofort jeglichen Sitzungszustand. Dieses eigenständige Wunderwerk bedeutete weniger Datenbankabfragen, vereinfachte horizontale Skalierung und einen scheinbar geringeren Server-Fußabdruck. Klingt großartig, und die Leute glaubten es.

Doch das Fundament dieses Versprechens zerbröselte bei genauerer Betrachtung. Ein wirklich zustandsloses Token kann nicht widerrufen werden. Wenn Sie sich abmelden, gesperrt werden oder, noch beängstigender, Ihr Token bei einer Sicherheitsverletzung gestohlen wird, bleibt es bis zu seinem Ablaufdatum perfekt gültig. Der Server hat konstruktionsbedingt keinen Mechanismus, um es zu „töten“. Diese grundlegende Sicherheitslücke macht den zustandslosen Traum zu einem Albtraum.

Fast jeder Workaround von Entwicklern entlarvt den Betrug. Um dem unwiderruflichen Token entgegenzuwirken, implementieren die Leute eine serverseitige „Liste widerrufener Tokens“. Diese Liste, die bei jeder einzelnen Anfrage überprüft wird, führt den Sitzungszustand wieder ein und negiert damit den zentralen zustandslosen Vorteil vollständig. Wie „The Boring Auth Method That Actually Works“ von Better Stack treffend feststellt, haben Sie den gesamten Grund, warum Sie JWTs überhaupt gewählt haben, über Bord geworfen. Sie verwalten wieder den Zustand, nur jetzt mit zusätzlichen Schritten und inhärenten Schwachstellen.

Local Storage: Die Hintertür Ihrer Authentifizierung

Viele Entwickler, die dem zustandslosen Traum nachjagen, machen einen entscheidenden Fehltritt: Sie speichern ihr JWT im Local Storage des Browsers. Diese Praxis bietet eine bequeme Sitzungspersistenz, die es Benutzern ermöglicht, über Browsersitzungen hinweg angemeldet zu bleiben, ohne zusätzliche Serverabfragen. Diese Bequemlichkeit geht jedoch mit inakzeptablen Sicherheitskosten einher.

Diese scheinbar harmlose Speicherwahl schafft eine klaffende Hintertür für Angreifer. Eine erfolgreiche Cross-Site Scripting (XSS)-Schwachstelle, die oft auf nicht maskierte Benutzereingaben zurückzuführen ist, ermöglicht es jedem bösartigen JavaScript, das in die Seite injiziert wird, mit denselben Berechtigungen wie die legitime Anwendung ausgeführt zu werden. Die Leute stopfen diese Tokens in den Local Storage, wodurch sie leicht zu entwenden sind.

Sobald ein Angreifer sein Skript ausführt, ist das im Local Storage gespeicherte JWT trivial zu extrahieren. Mit dem gestohlenen Token erhalten sie sofortigen, uneingeschränkten Zugriff auf das Konto des Opfers und umgehen alle Authentifizierungsmechanismen. Dies ist nicht nur eine geringfügige Sicherheitsverletzung; es ist eine vollständige Kontoübernahme, die dem Angreifer die Schlüssel zu Ihrem digitalen Königreich überreicht.

Entscheidend ist, dass diese Sicherheitskatastrophe kein Fehler im JWT-Standard selbst ist. Das Problem liegt eindeutig bei einem weit verbreiteten, gefährlichen Implementierungsfehler. Entwickler, die einen einfachen Weg zur Sitzungsverwaltung suchen, verwandeln ein leistungsstarkes kryptografisches Primitiv in eine Schwachstelle und geben Angreifern die Mittel an die Hand, Benutzerkonten über vorhersehbare Vektoren zu kompromittieren.

Die 'langweilige' Lösung, die tatsächlich funktioniert

Eine Lösung für diese selbst zugefügte JWT-Wunde ist trügerisch einfach, sogar „langweilig“, wie die Experten von Better Stack es treffend in „The Boring Auth Method That Actually Works“ beschreiben. Anstelle komplexer, eigenständiger Tokens kehren wir zu opakten Sitzungstokens zurück: zufällig generierte, bedeutungslose Zeichenketten. Diese Tokens dienen lediglich als Zeiger, die direkt auf einen reichhaltigen, veränderbaren Sitzungsdatensatz verweisen, der sicher in Ihrer serverseitigen Datenbank gespeichert ist, und stellen die Kontrolle wieder her, die JWTs zu eliminieren versprachen.

Dieser traditionelle Ansatz löst sofort die kritischen Probleme, die JWTs für das Session-Management plagen. Wenn ein Benutzer sich abmeldet, gesperrt wird oder sein Token gestohlen wird, kann der Server den entsprechenden Session-Eintrag sofort ungültig machen, wodurch das gestohlene Token nutzlos wird. Entscheidend ist, dass das Token selbst keine Benutzerdaten oder Autorisierungsansprüche preisgibt; es ist lediglich ein zufälliger Bezeichner, ein starker Kontrast zu den informationsdichten JWTs, die in RFC 7519 - JSON Web Token (JWT) beschrieben sind. Sie erhalten die sofortige Widerrufbarkeit zurück, eine Fähigkeit, die JWTs ohne umständliche Workarounds von Natur aus fehlt.

Darüber hinaus eliminiert der richtige Speichermechanismus für diese undurchsichtigen Tokens den von uns besprochenen XSS-basierten Diebstahlvektor. Wir befürworten sichere, HttpOnly Cookies. Diese Cookies werden automatisch mit jeder Anfrage gesendet, bleiben aber für clientseitiges JavaScript unzugänglich, wodurch Angreifer daran gehindert werden, sie über Cross-Site Scripting-Schwachstellen zu entwenden. Diese Methode bietet robusten clientseitigen Schutz und gibt Ihnen die wahre serverseitige Kontrolle zurück, eine viel bessere Lösung, als sich auf clientseitigen local storage zu verlassen.

Unzerbrechliche moderne Authentifizierung aufbauen

JWTs sind nicht die Bösewichte; sie sind nur fehlbesetzt. Ihre wahre Stärke liegt in spezifischen, eingeschränkten Szenarien, nicht als Ihr primäres Session-Management. Setzen Sie sie für kurzlebige API-Zugriffstoken ein, die temporäre, granulare Berechtigungen ohne ständige Datenbankabfragen gewähren. Sie eignen sich hervorragend für die Inter-Service-Kommunikation, bei der Backend-Systeme vertrauenswürdige, eigenständige Informationen austauschen und so ihr beworbenes stateless Design endlich kompromisslos nutzen.

Enjoying this? Get one like it in your inbox each morning.

one email a day · unsubscribe in two clicks · no third-party tracking

Moderne Authentifizierung erfordert einen intelligenteren Ansatz: das Hybridmodell. Geben Sie ein sicheres, undurchsichtiges Refresh Token aus, eine unerratbare Zeichenfolge, und legen Sie es sicher in einem HttpOnly Cookie ab, wodurch es für bösartige clientseitige Skripte unzugänglich wird. Dieses robuste Refresh Token verteilt dann extrem kurzlebige JWT Access Tokens direkt in den Anwendungsspeicher. Diese kurzlebigen JWTs bieten sofortige Autorisierung für Anfragen, verfallen schnell, bevor sie zu einer erheblichen Belastung werden können, und werden nahtlos im Hintergrund ohne Benutzerinteraktion aktualisiert.

Die Authentifizierungslandschaft entwickelt sich unaufhörlich weiter. Wir bewegen uns vollständig über Passwörter hinaus und setzen auf Passkeys und andere passwortlose Methoden, die überlegene Sicherheit und Benutzerfreundlichkeit bieten. Adaptive Authentifizierung, die Risikofaktoren in Echtzeit bewertet, härtet die Abwehrmaßnahmen weiter ab und macht die Zukunft der Sicherheit sowohl robuster als auch weniger aufdringlich für legitime Benutzer.

Häufig gestellte Fragen

Warum gilt das Speichern eines JWT im local storage als unsicher?

Das Speichern von JWTs im local storage macht sie anfällig für Cross-Site Scripting (XSS)-Angriffe. Jedes bösartige JavaScript, das in die Website injiziert wird, kann auf das Token zugreifen und es stehlen, wodurch ein Angreifer den Benutzer vollständig imitieren kann.

Was ist ein undurchsichtiges Session Token?

Ein undurchsichtiges Session Token ist ein zufälliger, bedeutungsloser Bezeichner, der auf dem Client gespeichert wird (idealerweise in einem HttpOnly Cookie). Es verweist auf einen detaillierten Session-Eintrag, der in einer serverseitigen Datenbank gespeichert ist, was eine sofortige Widerrufbarkeit und Kontrolle ermöglicht.

Wenn JWTs für Sessions riskant sind, was sind ihre richtigen Anwendungsfälle?

JWTs eignen sich hervorragend für kurzlebige, zustandslose Szenarien wie die Absicherung von APIs, die Autorisierung der Server-zu-Server-Kommunikation in Microservices oder als temporäre Access Tokens in einem komplexeren hybriden Authentifizierungssystem.

Kann man ein JWT wirklich widerrufen, bevor es abläuft?

Nicht direkt. Da JWTs zustandslos sind, hat ein Server nach ihrer Ausstellung keine Erinnerung mehr an sie. Die einzige Möglichkeit, eines zu 'widerrufen', besteht darin, eine serverseitige Sperrliste zu führen, was den Zustand wieder einführt und den Hauptvorteil der Verwendung von JWTs zunichtemacht.

Found this useful? Share it.

AI Reputation Report

What AI knows about you.

ChatGPT, Perplexity, Gemini, Claude & Grok are already answering questions in your category. Type your site, see who they name — you, or your competitor. Free preview.

Check my sitefree preview

One short daily email of tools worth shipping. No drip funnel.

one email a day · unsubscribe in two clicks · no third-party tracking

🚀Mehr entdecken

Bleiben Sie der KI voraus

Entdecken Sie die besten KI-Tools, Agenten und MCP-Server, kuratiert von Stork.AI.

P.S. Etwas Brauchbares gebaut? Bei Stork listen