我正在考虑将用户输入的密码存储在会话状态中。是否存在我需要注意的安全风险或问题?
答案 0 :(得分:3)
是。这只是一个非常糟糕的主意。您甚至不应该将密码存储在数据库中 - 最佳做法是存储密码的哈希值。因此,您可以验证密码,但如果有人访问数据库(或您的情况下的会话状态),他们实际上没有用户的密码。
答案 1 :(得分:1)
在asp.net中,有很多地方可以存储会话数据。最常见的是在开发中,它是InProc,或者基本上在RAM内存中。但是,有一天您可能决定使用其他会话提供程序(如数据库)或使用Windows Azure Cache。 在这两种情况下,以明文形式存储密码会使它们在通过网络传输时可见。
在上述方案中,会话数据通过网络传输,除非通过https发送传输,否则将显示清除密码。