凭据更改后需要身份验证

时间:2016-03-17 10:26:01

标签: javascript security authentication

这是一种糟糕的模式还是最佳实践。假设用户在“忘记密码”后成功更改了密码。我是否需要将他重定向到登录页面并提示他登录,还是应该自动将他登录到应用程序?

如果是,为什么?

2 个答案:

答案 0 :(得分:1)

我无法想象在忘记密码成功更改密码后要求他登录的任何安全优势。然而,可能存在可用性益处,例如:(1)在用户的存储器中加强他们的新密码,以及(2)允许他们的浏览器存储新密码以便他们不需要在其中键入下次他们从该浏览器登录。

将用户重定向到使用该新密码登录是相当常见的。

答案 1 :(得分:0)

OWASP recommendation实际上是:

  

每当成功进行密码重置时,会话应该是   无效,用户重定向到登录页面。

有关详细信息,请参阅this answer

  

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

     

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

     

比如说,攻击者已获得该帐户的访问权限   使用旧密码登录。重置所有会话将记录   攻击者。

如果攻击者设法更新用户的密码以防止登录,也可能在忘记的密码方案中使用这种情况,但由于某种原因未将电子邮件更新为不受真实用户控制的电子邮件。这可能是因为更新电子邮件地址会导致警报转到旧地址,并且攻击者不希望冒任何不必要的噪音风险(尽管在任何密码更改时向注册用户发送电子邮件也是一种好习惯。 )。

但实际的重定向和注销并不是必需的。这只需要旋转当前会话的会话标识符,以及要撤销的所有其他会话的会话标识符。这应该阻止任何攻击者访问现有会话。虽然详见TheGreatContini's answer

,但有一些优点