【问题标题】:Store password like a plain text in Session ASP .NET MVC在 Session ASP .NET MVC 中像纯文本一样存储密码
【发布时间】:2013-10-26 15:58:44
【问题描述】:

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

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

I know that Session also uses a cookie, but the cookie itself only contains a key. The server uses the key to obtain a dictionary of key/value pairs unique to that session, which stay on the server (or get serialized to the DB, depending on how it's configured).

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

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

谢谢!

【问题讨论】:

    标签: c# .net asp.net-mvc security session


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 这两个点都可以通过自定义 SessionIDManager 来缓解,该 SessionIDManager 对会话 ID 进行额外验证,例如使它们特定于 IP。然后,攻击者需要从相同的远程 IP 地址发送它们,才能接受会话 ID。
    • @SimonSvensson 将会话绑定到 IP 是有问题的。移动设备是最明显的例子,因为它们经常切换 IP。此外,负载平衡防火墙后面的用户可能会根据每个请求更改 IP。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-31
      • 2012-05-07
      • 2010-11-09
      • 2020-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多