2011-12-16 101 views
0

我正在考慮在會話狀態中存儲用戶輸入的密碼。是否存在我需要注意的安全風險或問題?在會話中存儲密碼

+0

閱讀相關帖子 http://stackoverflow.com/questions/4862096/is-storing-login-and-password-hash-in-session-secure-net-c-sharp – 2011-12-16 21:47:57

回答

3

是的。這只是一個非常糟糕的主意。您甚至不應該將密碼存儲在數據庫中 - 最好的做法是存儲密碼哈希值。所以你可以驗證密碼,但是如果有人訪問數據庫(或者你的情況下會話狀態),他們實際上並沒有用戶的密碼。

+0

但會話狀態不一定在數據庫中,這會使它更安全。如果會話狀態不被保留,可以將密碼存儲在會話狀態中嗎? – BlueMonkMN 2014-03-26 21:13:07

+0

密碼永遠不會永遠存儲在任何地方。 salt +哈希密碼,只要他們到達服務器,然後只對該結果進行操作。您無需對用戶的原始密碼進行操作。 – 2014-03-27 01:08:20

1

在asp.net中,有很多地方可以存儲會話數據。最常見的是開發中,它是InProc,或者基本上在RAM內存中。不過,有一天您可能會決定使用不同的會話提供程序,如數據庫或使用Windows Azure緩存。 以明文形式存儲密碼將使它們在通過網絡在這兩種情況下傳輸時都可見。

在上述場景中,通過網絡傳輸會話數據,除非通過https發送傳輸,否則將顯示清除密碼。