2016-10-14 245 views
1

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

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

感谢

+0

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

回答

0

你可以看看基于令牌的东西,但你会发现是,总有东西存储在客户端上,并通过了认证,而不是实际的用户凭据(用户名和密码)。无论是会话ID还是令牌,假设攻击者能够访问客户端上的内容并不重要。

使用基于令牌的身份验证时,令牌大部分时间都不保存在cookie中,但是例如在浏览器内存(JavaScript对象)中,或者更糟糕的是,在像localStorage这样的地方。这实际上是安全性较低的,而不是在httpOnly cookie中的一个很好的旧会话ID,这对于跨站点脚本来说是安全的,而不是浏览器中的其他任何东西。

因此,要意识到,几乎所有您选择的解决方案,基本上会发生什么是您交换您的用户凭证的某种令牌,然后您使用身份验证,并在会话令牌相当于您的凭据,并传统会话和令牌之间没有太大区别。即使Windows认证也是如此,但是在操作系统级别下层,这使得它不太容易受到像XSS这样的攻击,但却容易受到基于自动发送的会话ID(如CSRF)的攻击的影响。

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

+0

感谢您的信息。我决定使用表单身份验证,但我可能会向Cookie添加IP地址或其他内容,以防止来自使用相同cookie的不同计算机的多次登录 –