JWT-Token sind in jüngster Zeit zu einer sehr beliebten Authentifizierungsmethode in Webanwendungen geworden. Obwohl dies eine der sichersten Möglichkeiten ist, Ressourcen zu schützen, und Alternativen auf dem Markt fehlen – denken Sie daran, dass jede Rose Spikes hat und auch hier viele potenzielle Risiken lauert. Sie sind hauptsächlich auf Fehler bei der Umsetzung zurückzuführen. Um sich vor ihnen zu schützen, sollten Sie sich an die folgenden Regeln halten:
- Stellen Sie sicher, dass Sie entsprechend komplexe Verschlüsselungsschlüssel mit einer Länge von mindestens 2048 Bit verwenden.
- Erstellen Sie ein Verfahren, wenn der Verschlüsselungsschlüssel austritt.
- Die Schlüssel sollten auf hinreichend sichere Weise aufbewahrt werden (z. B. sollten sie nicht im Quellcode enthalten sein).
- Der Server sollte eine bestimmte Art der Signatur benötigen, damit diese nicht auf der Clientseite geändert werden kann.
- Überprüfen Sie, ob Ihre Implementierung den Signaturalgorithmus "none" nicht zulässt.
- Überprüfen Sie, ob Ihre Implementierung die Signatur definitiv überprüft (sie akzeptiert keine leere Signatur und unterscheidet zwischen "verify()" und "decode()" ).
- Überprüfen Sie, ob der Debugmodus deaktiviert ist und auf der Clientseite nicht erzwungen werden kann.
- Laden Sie keine JWT-Token in die URL hoch.
- Überprüfen Sie, ob Sie vertrauliche Informationen in Ihrem JWT-Token offenlegen.
- Überprüfen Sie, ob Sie sich vor einem Replay-Angriff schützen.
- Überprüfen Sie, ob die Lebensdauer des Tokens ausreichend kurz ist und ob es tatsächlich ordnungsgemäß überprüft wird.
- Denken Sie darüber nach, ob Sie die Funktion zum Rückgängigmachen einzelner Token benötigen.