为什么要在密码重置后将用户重定向到登录页面?

信息安全 密码 重设密码
2021-08-12 04:34:39

OWASP Forgot Password Cheat Sheet建议

每当密码重置成功时,会话应失效并将用户重定向到登录页面

我无法理解为什么这如此重要。此建议是否有安全基础?如果有,它是什么?

4个回答

假设攻击者拥有您的密码。您登录并重置它。如果重置没有使所有现有会话无效,攻击者仍然可以访问,只要他们不让会话过期。

在这种情况下,重置实际上并没有实现任何目标。

根据网站的功能,您使用现在已过期的密码登录也可能会出现问题。假设您的密码用于解锁某些东西,您使用“password1”登录,但服务器现在将您的密码保存为“password2”,会发生什么?这显然是假设性的,但希望能说明这一点。

我想重定向到登录屏幕只是一个建议。我不确定为什么将用户发送到哪里很重要,但从可用性的角度来看,将用户发送到登录页面而不是主页更有意义。

保护可能被盗帐户的会话

如果密码更改时的会话管理安全完成,则无需实际重定向到登录页面。也就是说,只要所有当前会话标识符都无效并且当前会话附加到一个新的会话标识符(通常作为身份验证 cookie 中的令牌发出 - cookie 仅发送到刚刚更改密码的会话),那么那里已经在帐户中的攻击者没有保持登录的风险。

OWASP 文章

下面解释了 OWASP 文章背后的基本原理。它的安全方面没有任何问题,但是存在一些可用性问题。

当用户希望保护他们的帐户时,通常会使用密码重置功能。

通过在密码重置时使所有现有会话无效,系统确保只有拥有新密码的人才能登录。

例如,使用旧密码访问帐户的攻击者已登录。重置所有会话将使攻击者注销。

为什么要注销当前用户,我听到你问了?

好吧,说攻击者正在利用当前用户的会话,比如说使用会话固定漏洞。这意味着攻击者拥有与真实用户相同的会话。重置当前会话也将确保没有人在该帐户上不应该具有访问权限。

重定向到上面引用中的登录页面实际上描述了您应该将用户从当前会话和所有会话中注销(但阻止您将它们放入具有新标识符的新会话中没有风险)。

从 netsec 的角度来看,其他答案可能更正确,但我想补充一点,您还可以确保用户实际上能够使用他们的新密码登录。如果出现问题,例如浏览器自动填充旧密码,这会很明显。

它还可以防止用户使用密码重置作为登录。在我的一个帐户上,回答安全问题比记住密码更容易,因为我每次重置密码时都必须设置一个唯一的密码,并且无法记住它们。

将您发送到登录页面只有一个可能的与安全
相关的原因,因为所有旧会话都可能无效,并且您当前的活动会话您更改密码从自动替换: 这使得使用密码重置登录更加麻烦,从而减少您使用它的频率,从而更安全地防止窃听和意外泄露。

将您发送到那里还有一个可用性原因它确保您可以实际使用新密码,并且任何浏览器内的密码缓存都会更新。