3

我剛讀了以下內容:爲什麼我應該存儲持久登錄cookie和密碼重置令牌的散列?

,不要在數據庫中存儲持久登錄cookie(TOKEN),只有IT哈希!登錄令牌是密碼等效的,因此如果攻擊者在您的數據庫上獲得了他的手,他/她可以使用這些令牌登錄到任何 帳戶,就像它們是明文登錄密碼組合一樣。 因此,在存儲 持久登錄標記時使用強烈的醃製散列(bcrypt/phpass)。

(在這個答案:https://stackoverflow.com/a/477578/943102

我認爲哈希應該因爲人在多個網站使用相同的密碼,並阻止攻擊者闖入同一用戶的其它賬戶中使用。由於登錄令牌是隨機值,因此此風險不存在。我明顯錯過了一些東西,但我無法找到關於此的更多信息。有人可以解釋嗎?

回答

8

讓我們假設你是一個Web應用程序開發人員,並且你做的是正確的事情,並且你只將用戶密碼的哈希存儲在數據庫中(而不是純文本),但是你決定將其已驗證的登錄標記存儲在數據庫中對它們進行散列。

現在假設惡意攻擊者闖入Web應用程序的數據庫並執行轉儲,並與網絡上的惡意攻擊者好友共享。那麼,這些密碼哈希將不會對他有好處,因爲他無法使用哈希登錄。但他看到這些登錄令牌是以純文本形式存儲的。現在,將一個cookie放入cookie並將其與HTTP請求一起發送到服務器是微不足道的。服務器將獲取cookie,並根據數據庫對其進行身份驗證,並允許攻擊者進入。因此,即使這些登錄標記只是隨機值,一旦攻擊者擁有它們,他或她就可以使用它們模擬經過身份驗證的用戶。

+0

謝謝。這是多麼明顯,我沒有想到它,這真是一種恥辱。 –

+1

沒問題。我很高興你正在閱讀基於網站認證的權威指南。我從中學到了很多東西。 – austin

相關問題