是否有比表单身份验证更安全的身份验证方法

时间:2016-10-14 11:53:38

标签: security authentication cookies forms-authentication

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

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

由于

1 个答案:

答案 0 :(得分:0)

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

当使用基于令牌的身份验证时,令牌大部分时间都没有保存在cookie中,例如在浏览器内存(Javascript对象)中,或者更糟糕的是,在localStorage等地方。这实际上不太安全而不是httpOnly cookie中的旧会话ID,这对于跨站点脚本是安全的,而不是浏览器中的其他任何东西。

所以要意识到,对于您选择的几乎任何解决方案,基本上会发生什么,您将用户凭据交换为某种令牌然后用于身份验证,对于会话,令牌等同于您的凭据,并且传统会话和令牌之间差别不大。即使是Windows身份验证在操作系统级别上执行的操作大致相同,但在下面一层,这使得它不易受到XSS等攻击的影响,但却容易受到基于自动发送的会话ID(如CSRF)的攻击。<​​/ p>

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