【问题标题】:Is there a more secure means of authentication than Forms authentication是否有比 Forms 身份验证更安全的身份验证方式
【发布时间】:2017-02-23 20:23:23
【问题描述】:

我想知道是否有比表单身份验证更安全的身份验证方式?我不喜欢这样的事实,即当您使用表单身份验证登录站点时,您可以将 cookie 复制到另一台计算机并登录。我意识到如果通过 ssl 浏览该站点,则中间不可能没有人攻击,但是我仍然不喜欢我的网站以这种方式易受攻击的事实。

除了 Windows 身份验证之外,还有其他好的替代方法吗?

谢谢

【问题讨论】:

  • 短期 Web 令牌有助于降低复制 cookie 带来的风险,因为它们通常不包括加密的用户名和密码,并且它们会在短时间内失效,因此即使它们被盗,它们也会无法使用...

标签: security authentication cookies forms-authentication


【解决方案1】:

您可以查看基于令牌的内容,但您会发现总是有 something 存储在客户端上并通过身份验证而不是实际的用户凭据(用户名和密码) )。如果您假设攻击者能够访问客户端上的内容,那么它是会话 ID 还是令牌并不重要。

使用基于令牌的身份验证时,令牌大部分时间不会保存在 cookie 中,而是保存在例如浏览器内存(Javascript 对象)中,或者更糟糕的是,保存在 localStorage 之类的地方。这实际上安全性低于 httpOnly cookie 中的旧会话 id,与浏览器中的几乎所有其他内容相比,它对跨站点脚本是安全的。

所以请务必意识到,对于您选择的几乎任何解决方案,基本上发生的情况是您将用户凭据交换为某种令牌,然后您将其用于身份验证,并且对于会话,令牌等同于您的凭据,并且传统会话和代币没有太大区别。甚至 Windows auth 的功能也差不多,但在操作系统级别下一层,这使得它不太容易受到 XSS 等攻击,但容易受到基于自动发送的会话 ID(如 CSRF)的攻击。

如果您想减轻攻击者窃取会话 ID 的威胁,例如,您可以设计应用程序,将会话绑定到客户端标识符(如客户端 IP 地址)。这样即使会话 id 被盗,攻击者仍然无法使用它。作为对该威胁的另一种缓解措施,您可以阻止并发会话,这实际上意味着终止登录用户的所有其他会话的逻辑。请注意,这些事情并不特定于传统会话,同样适用于基于令牌的身份验证,只有实现方式不同。

【讨论】:

  • 感谢您的信息。我决定使用表单身份验证,但我可能会在 cookie 中添加 IP 地址或其他内容,以防止不同计算机使用相同 cookie 进行多次登录
猜你喜欢
  • 1970-01-01
  • 2013-01-20
  • 2016-12-18
  • 2014-01-21
  • 1970-01-01
  • 2017-12-25
  • 2012-05-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多