2011-12-16 56 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发送传输,否则将显示清除密码。