簡體   English   中英

一個將身份驗證令牌存儲在ASP.Net Core中的位置

[英]Where should one store the authentication token in ASP.Net Core

我的應用程序有一個API部分和一個網站部分。 在網站上,用戶可以登錄並從API獲取JWT承載令牌。

我的問題是:

我應該在哪里存儲該令牌?

有些人說將其存儲在Cookie中(另一些人說“不要,因為CSRF”),另一些人說使用HTML5 Web存儲,另一些人說使用Session(而另一些人說“在ASP Net Core中不使用Sessions”),而我看到一篇文章,其中有人將身份驗證令牌存儲在數據庫中(??)。 那么,現在正確的地方是什么?

具有許多控制器和許多視圖的MVC-Web應用程序

如果您必須使用令牌對MVC應用程序的每個請求進行身份驗證,我認為最好的選擇是將其存儲在會話cookie中,因為如果沒有,則Web瀏覽器將不會在每個請求中發送令牌真實性,這將是一個屁股痛。

現在,為了保護cookie和請求:

  • 制作會話Cookie(無有效期)
  • 限制Cookie的范圍(域和路徑)。
  • 設置安全和HttpOnly屬性。
  • 設置SameSite屬性。
  • 如果瀏覽器不支持SameSite,請使用反CSRF令牌。
  • 設置限制性X-Frame-Options。
  • 不要忘記在每個請求中都驗證服務器上的JWT簽名。
  • 加密JWT令牌以防止泄漏可能導致社會工程的信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM