TextSorter
Your token will appear here

Lassen Sie uns über Tokens sprechen

Hallo Freunde. Haben Sie sich jemals gefragt, wie Websites sich daran erinnern, wer Sie sind. Sie melden sich einmal an und boom, Sie sind drin. Sie klicken sich durch die Seite. Sie kaufen Dinge ein. Sie posten lustige Katzenbilder. Die Website weiß einfach, dass Sie es sind. Wie macht sie das. Nun, es ist keine Magie. Meistens ist es ein JSON Web Token.

Stellen Sie sich vor, Sie gehen auf ein exklusives Konzert. Sie warten in der Schlange. Die Person an der Tür überprüft Ihr Ticket. Sie verifiziert, dass Sie echt sind. Dann stempelt sie Ihre Hand. Für den Rest des Abends zeigen Sie einfach nur den Stempel. Sie müssen Ihr Ticket nicht noch einmal vorzeigen. Das JSON Web Token ist genau wie dieser Handstempel. Es beweist, dass Sie bereits überprüft wurden. Es beweist, dass Sie dorthin gehören.

Das Token aufschlüsseln

Ein Token besteht aus drei verschiedenen Teilen. Sie werden durch einen Punkt miteinander verbunden. Diese Teile sind der Header, die Nutzdaten (Payload) und die Signatur. Lassen Sie uns einen Blick darauf werfen, was jeder Teil eigentlich genau macht.

Als erstes kommt der Header. Der Header ist wie der Umschlag eines Briefes. Er verrät Ihnen, was drin ist. Er gibt normalerweise die Art des Tokens und den Algorithmus an, der zum Signieren verwendet wurde. Meistens ist der Typ einfach JWT. Der Algorithmus könnte HS256 sein. Das ist sehr einfach. Es ist nur ein winziges JSON Objekt, das in Text umgewandelt wird.

Als nächstes kommt der Payload. Das ist das wahre Herzstück des Tokens. Hier legen Sie Ihre eigentlichen Daten ab. Sie könnten hier eine Benutzer ID einfügen. Sie könnten eine Rolle wie Administrator oder Benutzer hinzufügen. Sie könnten auch ein Ablaufdatum festlegen. Auch diese Daten sind nur ein JSON Objekt. Wir nennen die einzelnen Datenelemente Claims. Es gibt Standard Claims und benutzerdefinierte Claims. Sie können fast alles, was Sie möchten, in den Payload einfügen. Denken Sie nur daran, dass ihn jeder lesen kann. Legen Sie keine Passwörter oder streng geheimen Dinge in den Payload. Er wird nur kodiert, nicht verschlüsselt. Das ist ein riesiger Unterschied.

Zum Schluss haben wir die Signatur. Dies ist der kritischste Teil. Die Signatur ist das, was das Token sicher macht. Ohne eine Signatur könnte jeder einfach seine Benutzer ID in die einer anderen Person ändern. Man könnte sich selbst zum Administrator machen. Das wäre eine absolute Katastrophe. Die Signatur verhindert dies. Sie nimmt den Header und den Payload. Dann fügt sie einen geheimen Schlüssel hinzu, den nur der Server kennt. Danach führt sie eine komplexe mathematische Berechnung mit allem durch. Wenn jemand auch nur einen einzigen Buchstaben im Header oder Payload ändert, passt das mathematische Ergebnis nicht mehr zur Signatur. Der Server weiß dann, dass das Token gefälscht ist. Es ist genial einfach und gleichzeitig extrem sicher.

Wie man ein Token signiert

Ein Token zu signieren klingt kompliziert. Es ist aber eigentlich ziemlich geradlinig. Sie brauchen Ihren kodierten Header. Sie brauchen Ihren kodierten Payload. Sie brauchen einen geheimen Schlüssel. Sie verbinden den Header und den Payload mit einem Punkt. Dann jagen Sie beide durch eine Hashing Funktion zusammen mit Ihrem geheimen Schlüssel. Die gebräuchlichste Funktion ist HMAC SHA256.

Sobald die Mathematik erledigt ist, erhalten Sie eine Zeichenfolge. Das ist Ihre Signatur. Sie kodieren sie so, dass sie sicher über das Web gesendet werden kann. Dann hängen Sie sie mit einem weiteren Punkt an das Ende Ihres Headers und Payloads an. Jetzt haben Sie ein vollständiges Token. Es ist bereit, an den Server gesendet zu werden. Der Server wird genau dieselbe Mathematik durchführen, wenn er das Token erhält. Wenn das Ergebnis mit der von Ihnen gesendeten Signatur übereinstimmt, weiß der Server, dass das Token gültig ist. Der Server weiß, dass niemand daran manipuliert hat.

Warum wir sie lieben

Entwickler lieben diese Token absolut. Warum. Weil sie zustandslos sind. Das ist eine sehr große Sache in der Programmierwelt.

Früher mussten sich Server an jede einzelne Person erinnern, die angemeldet war. Sie speicherten dies in einer Datenbank oder im Arbeitsspeicher. Wir nannten das eine Session. Wenn sich eine Million Menschen anmeldeten, musste sich der Server an eine Million Sessions erinnern. Das verbrauchte sehr viel Arbeitsspeicher. Es war schwer zu skalieren. Wenn man fünf Server hatte, mussten sie alle die Session Daten gemeinsam nutzen. Das war massives Kopfzerbrechen.

JSON Web Tokens beheben all dies. Der Server erinnert sich an überhaupt nichts. Der Server gibt Ihnen einfach das Token und vergisst Sie wieder. Wenn Sie zurückkommen, zeigen Sie das Token vor. Der Server überprüft die Signatur. Wenn die Signatur gültig ist, vertraut der Server dem Token. Er liest den Payload, um zu sehen, wer Sie sind. Der Server muss keine Session in einer Datenbank nachschlagen. Es ist unglaublich schnell. Es verbraucht fast null Speicherplatz auf dem Server. Man kann zehn Server oder tausend Server haben. Sie können alle das Token verifizieren, ohne miteinander zu kommunizieren. Das macht die Skalierung von Webanwendungen sehr viel einfacher.

Häufige Fehler, die man vermeiden sollte

Es gibt einige Fallen, auf die Sie achten sollten. Wir sehen immer wieder, dass Menschen die gleichen Fehler machen.

Der erste Fehler besteht darin, sensible Daten in den Payload aufzunehmen. Ich weiß, ich habe das bereits erwähnt. Ich sage es noch einmal, weil es einfach so wichtig ist. Der Payload ist nur base64 kodiert. Jeder kann ihn dekodieren. Sie können ihn genau jetzt in Ihrem Browser dekodieren. Wenn Sie eine Kreditkartennummer in den Payload legen, kann sie jeder sehen. Fügen Sie nur Daten hinzu, die öffentlich sicher sind.

Der zweite Fehler ist die Verwendung eines schwachen geheimen Schlüssels. Ihr geheimer Schlüssel ist das Einzige, was das Token sicher hält. Wenn jemand Ihren geheimen Schlüssel errät, kann er seine eigenen Tokens erstellen. Er kann sich als jeder andere ausgeben. Behandeln Sie Ihren geheimen Schlüssel wie ein Master Passwort. Machen Sie ihn lang. Machen Sie ihn zufällig. Teilen Sie ihn niemals mit anderen. Fügen Sie ihn niemals in Ihren Quellcode ein.

Der dritte Fehler besteht darin, das Ablaufdatum nicht zu überprüfen. Token sollten nicht ewig leben. Wenn ein Token niemals abläuft und ein Hacker es stiehlt, kann er es für immer verwenden. Geben Sie Ihren Tokens immer ein Ablaufdatum. Wenn sie ablaufen, muss der Benutzer ein neues anfordern. Dies begrenzt den Schaden, falls ein Token jemals gestohlen wird.

Lassen Sie uns zum Schluss kommen

Da haben Sie es also, Leute. Das ist alles, was Sie über JSON Web Tokens wissen müssen. Sie sind eine brillante Erfindung. Sie machen das Web deutlich schneller und sicherer. Sie lösen riesige Probleme für alle Entwickler. Sie fungieren als digitaler Reisepass. Sie bekommen einmal einen Stempel und können loslegen. Der Header verrät Ihnen, was es ist. Der Payload enthält Ihre Daten. Die Signatur hält alles zusammen sicher. Denken Sie nur daran, Ihre Geheimnisse auch geheim zu halten. Legen Sie keine privaten Dinge in den Payload. Legen Sie immer ein Ablaufdatum fest. Dann werden Sie in kürzester Zeit absolut sichere Anwendungen erstellen.

Probieren Sie jetzt unseren Builder aus. Es macht super viel Spaß, damit herumzuspielen. Sie können den Header verändern. Sie können den Payload modifizieren. Sie können Ihren ganz eigenen geheimen Schlüssel hinzufügen. Beobachten Sie, wie sich das Token sofort verändert. Es ist ein toller Weg zu lernen, wie alles funktioniert. Viel Spaß beim Erkunden der Welt der sicheren Token.

Frequently Asked Questions

Sind diese Tokens wirklich sicher
Ja, sie sind sehr sicher, solange Sie einen starken geheimen Schlüssel verwenden. Die Signatur verhindert zuverlässig, dass jemand die Daten verändert.
Darf ich Passwörter in den Payload einfügen
Nein, absolut nicht. Der Payload ist base64 kodiert und für jeden vollständig sichtbar. Fügen Sie niemals Passwörter oder vertrauliche Geheimnisse hinein.
Wie kann ich ein Token dekodieren
Sie können die Header und Payload Teile ganz einfach base64 dekodieren. Der durch die Signatur verifizierte Teil gewährleistet die Datenintegrität.
Wird mein geheimer Schlüssel an irgendeinen Server gesendet
Nein, die gesamte Generierung und Signierung des Tokens findet ausschließlich in Ihrem Browser statt. Ihr geheimer Schlüssel verlässt niemals Ihr eigenes Gerät.