1

今天我收到了这个问题...

当我们在 ASP .NET MVC 的会话中像纯文本一样存储密码时,这是一个大问题吗?

我知道 Session 也使用了 cookie,但 cookie 本身只包含一个密钥。服务器使用该键来获取该会话唯一的键/值对字典,该字典保留在服务器上(或序列化到数据库,具体取决于它的配置方式)。

那么有没有可能一些黑客可以通过某种方式获得它?

我需要明确的答案。如果可能的话,我需要一些解释如何做到这一点。我需要它来查看这种方法可能存在的风险。

谢谢!

4

2 回答 2

2

我假设密码存储在会话中,因为应用程序将其用于某些用途。黑客不太可能读取密码(不拥有 Web 服务器),但可以攻击会话并接管它,然后通过应用程序使用密码。

我可以立即想到的两种攻击方式:

  1. 会话固定攻击。黑客开始与您的应用程序进行自己的会话,记下会话 ID,然后准备一封特制的电子邮件,打开该电子邮件后,用户将使用该会话 ID 访问您的网站。当用户登录时,黑客将可以访问同一个会话,因为他们拥有共同的 ID。

  2. 蛮力。会话 ID 是一个 120 位的数字。黑客可以使用随机会话 ID 不断地轮询您的站点,直到找到一个有效的。很难防范这种形式的攻击,因为 ASP 不区分伪造的会话 ID 和已过期的真实会话 ID。

于 2013-10-17T23:28:23.097 回答
2

这是绝对不安全的。攻击者可以通过多种方法窃取用户会话,例如会话固定、会话劫持、跨站点脚本。您可以从Session hijacking文章开始您的研究。

于 2013-10-17T23:31:17.060 回答