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

Security 是否有比表单身份验证更安全的身份验证方法,security,authentication,cookies,forms-authentication,Security,Authentication,Cookies,Forms Authentication,我想知道是否有比表单身份验证更安全的身份验证方法?我不喜欢这样一个事实,即当您使用表单身份验证登录到站点时,您可以将cookie复制到另一台计算机,然后登录。我意识到,如果网站被浏览到SSL,就不会有中间人攻击,但是我仍然不喜欢我的网站是这样脆弱的。 除了windows身份验证之外,还有其他好的选择吗 谢谢您可以查看基于令牌的内容,但您会发现,客户端上总是存储有用于身份验证的内容,而不是实际的用户凭据(用户名和密码)。如果假设攻击者有能力访问客户端上的内容,那么会话id还是令牌实际上并不重要 使

我想知道是否有比表单身份验证更安全的身份验证方法?我不喜欢这样一个事实,即当您使用表单身份验证登录到站点时,您可以将cookie复制到另一台计算机,然后登录。我意识到,如果网站被浏览到SSL,就不会有中间人攻击,但是我仍然不喜欢我的网站是这样脆弱的。 除了windows身份验证之外,还有其他好的选择吗


谢谢

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

使用基于令牌的身份验证时,令牌大多数情况下不是保存在cookie中,而是保存在浏览器内存(Javascript对象)中,甚至更糟的是,保存在localStorage之类的地方。这实际上不如httpOnly cookie中的一个好的旧会话id安全,后者可以防止跨站点脚本编写,这与浏览器中的其他内容几乎完全不同

因此,请务必意识到,对于您选择的几乎任何解决方案,基本上都是将您的用户凭据交换为某种令牌,然后将其用于身份验证,对于会话,令牌相当于您的凭据,而传统会话和令牌之间没有太大区别。即使是Windows auth也做了同样的事情,但在操作系统级别的下面有一层,这使得它不太容易受到诸如XSS之类的攻击,但也容易受到基于自动发送的会话ID(如CSRF)的攻击


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

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

当使用基于令牌的身份验证时,令牌通常不会保存在cookie中,而是保存在浏览器内存(Javascript对象)中,甚至更糟糕的是,在localStorage这样的地方。这实际上比httpOnly cookie中的一个好的旧会话id安全性要差,后者可以防止跨站点脚本编写,而浏览器中的任何其他内容都不安全

因此,请务必意识到,对于您选择的几乎任何解决方案,基本上都是将您的用户凭据交换为某种令牌,然后将其用于身份验证,对于会话,该令牌相当于您的凭据,并且传统会话和令牌之间没有太大区别。即使是Windows auth也会这样做ut在操作系统级别上是相同的,但下面有一层,这使得它不太容易受到XSS之类的攻击,但容易受到基于自动发送的会话ID(如CSRF)的攻击


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

短期Web令牌有助于减轻复制Cookie带来的风险,因为Cookie通常不包括加密的身份验证用户名和密码在短时间内失效,因此即使被盗,也无法使用…短寿命Web令牌有助于降低复制Cookie带来的风险,因为Cookie通常不包括加密的用户名和密码,短时间后失效,因此即使如果被窃取,它们将无法使用…感谢提供的信息。我决定使用表单身份验证,但我可能会在cookie中添加IP地址或其他内容,以防止不同计算机多次登录使用相同的CookieThank获取信息。我决定使用表单身份验证,但我可能会添加IP地址或其他内容,以防止使用同一cookie的不同计算机多次登录