2016-07-25 17 views
0

Ich lese über JWT. Nach ein paar Tagen habe ich die Idee von diesem Konzept. jetzt ist meine Frage über create jwt-Token pro Benutzer, die anderen zu verwenden, um andere Token zu verwenden .Wie kann man verhindern, dass Clients andere JWT-Token in .net verwenden?

zum Beispiel Szenario: Benutzer Eine Anmeldung am Server und erhalten ihre jwt Token und Server ermöglichen es die Ressourcen zuzugreifen.

jetzt eine dritte Partei kommen und JWT-Token von Benutzer A zu erhalten. Jetzt können Dritte dieses Token verwenden und dieses Token verwenden, um Ressourcen ohne Anmeldung an System zu verwenden.

Wie kann ich JWT-Token räumlich für einen unique Benutzer erstellen?

Antwort

1

Der JWT enthält im Feld 'sub' die Benutzerkennung. Es kann nur verwendet werden, um diesen Benutzer

Einmal ausgestellt zu identifizieren, ersetzt das Token die Anmeldeinformationen des Benutzers, so haben Sie ein Token zu verhindern gestohlen werden können und mildern auch seine Auswirkungen:

  • Hauptsächlich HTTPS verwenden Man-In-The-Middle
  • set eine kurze Verfallszeit und drehen Sie die Token
  • entfernen Token an Client-Seite nach dem Abmelden
  • Cookies benutzen, um zu vermeiden, zu speichern und setzen Sie Httponly das Risiko des Kunden zu mindern Seitenskript, das auf das geschützte Cookie zugreift
  • Pflegen Sie eine Server-Blacklist für nicht akzeptierte Token. Wenn sich der Benutzer beispielsweise abmeldet, ändert er das Kennwort oder aktualisiert die Berechtigungen, auch wenn der Administrator ein Konto entzieht.
  • Verwenden Cookies Httponly zu speichern und setzen Sie das Risiko der Client-Seite Skript zu mildern die geschützten Cookie Zugriff
+0

i über Verfahren wie Drehen Token schwarze Liste ein Server gehört, .... und meiner Meinung nach diejenigen, brechen die JWT Hauptautorisierung ohne Datenbankzugriff und Staatenlosigkeit von JWT –

+1

Ich stimme zu, dass die Pflege einer Blacklist bedeutet, den Zustand zu kennen und in irgendeiner Weise "zustandslos" zu brechen. Alternativ ist es möglich, im Token selbst einen Hash zu erstellen, der das Passwort und/oder die Berechtigungen enthält und jede Anfrage eincheckt (Zugriff auf die Datenbank ...). Werfen Sie einen Blick auf http://stackoverflow.com/questions/21978658/invalidating-json-web-tokens. Drehen Sie die Token mit kurzer Ablaufzeit ist eine Sicherheitsmaßnahme. Ein gestohlener Token hätte eine kurze Wirkung. Sie können sich abhängig von den Anforderungen Ihrer Website bewerben oder nicht – pedrofb