Wo sollte das Authentifizierungstoken in ASP.Net Core gespeichert werden?

8

Meine Anwendung hat einen API-Teil und einen Website-Teil. Auf der Website kann sich der Benutzer anmelden und erhält ein JWT-Bearer-Token von der API.

Meine Frage ist jetzt:

  

Wo sollte ich dieses Token speichern?

Einige sagen, sollte sie in Cookies (während andere sagen, „nicht, weil CSRF“), sagen einige HTML5 Web Storage, sagen andere Session verwenden (während andere sagen: „verwenden Sessions nicht in ASP Net Core“ ) und ich habe einen Artikel gesehen, in dem jemand das Authentifizierungs-Token in einer Datenbank gespeichert hat (??). Also, wo ist jetzt der richtige Ort?

    
Matthias Burger 30.05.2017, 10:04
quelle

1 Antwort

4
  

MVC-Web-Anwendung mit vielen Controllern und vielen Ansichten

Wenn Sie das Token verwenden, jede Anfrage auf Ihren MVC-app zu authentifizieren ich denke, die beste Option speichern ist es in Session-Cookie, denn wenn nicht, wird der Web-Browser ist nicht das Token gehen senden authomaticaly in jeder Anfrage und wird ein Schmerz in den Arsch sein.

Nun, um den Cookie und die Anfragen zu sichern:

  • Machen Sie einen Session-Cookie (kein Ablaufdatum)
  • Schränken Sie den Umfang des Cookies so weit wie möglich ein (Domäne und Pfad).
  • Set Secure und HttpOnly-Attribute.
  • Stellen Sie SameSite Attribut.
  • Wenn der Browser SameSite nicht unterstützt, verwenden Sie ein Anti-CSRF-Token.
  • Eingeschränkte X-Frame-Optionen festlegen.
  • Vergessen Sie nicht, die JWT-Signatur auf Ihrem Server bei jeder Anfrage zu überprüfen.
  • Verschlüsseln der JWT-Token Informationen zu verhindern undicht, die Social-Engineering führen könnte.
jlvaquero 30.05.2017, 11:57
quelle