7

我想在瀏覽器中存儲一個oauth刷新令牌。我想在那裏存儲它的原因是,應用程序可以刷新訪問令牌並讓用戶不中斷地繼續其會話。我也想消除對服務器上任何類型的緩存的需要,以存儲令牌,從而使它有狀態。爲什麼我無法在瀏覽器中存儲oauth刷新令牌?

我被告知在瀏覽器中存儲刷新標記是錯誤的,因爲它是不安全的。

我認爲這是可以的,因爲:

  • 令牌將被存儲在僅Http,安全的會話cookie所以他們不應該在中間人攻擊容易受到XSS或人,他們都將被丟棄,當用戶關閉他們的會話。
  • 所有通信服務器通過HTTPS
  • 如果可疑活動被檢測
  • 最重要的是你不能使用刷新令牌,除非你知道這將是唯一已知客戶端機密刷新令牌可以做無效由服務器。

我錯了,認爲它應該好嗎?請解釋爲什麼!

回答

4

存儲在僅Http安全 cookie中的令牌可能是可以實現安全,明智的最好的。有時候,問題在於,由於其他(非安全性)原因,httpOnly cookie不夠好,因爲Javascript顯然無法訪問(這就是要點)。因此,人們有時想在其他瀏覽器商店(如localStorage)中存儲令牌,或者在JavaScript對象中稍微好一些,這兩種方式的安全性都比httpOnly cookie低(但對某些應用程序而言可能足夠好)。

將令牌存儲在httpOnly和安全cookie中使得它幾乎等同於會話ID,並且其安全性在這方面也是相同的(顯然其他方面可能不同)。