每当成功重置密码后,该会话均应无效,并且用户将重定向到登录页面
/>我无法理解为什么这是如此重要。此建议是否有安全依据,如果有,它是什么?
#1 楼
假设攻击者拥有您的密码。您登录并重置它。如果重置不会使所有现有会话无效,则只要攻击者不让其会话过期,攻击者仍然可以访问。在这种情况下,重置实际上没有实现任何目的。
根据网站的工作情况,使用过时的密码登录也可能会出现问题。假设您的密码用于解锁某些东西,您使用“ password1”登录,但是服务器现在将密码另存为“ password2”,会发生什么?这显然是假设的,但希望可以说明这一点。
我想重定向到登录屏幕只是一个建议。我不确定将用户发送到哪里很重要,但是从可用性的角度来看,将用户发送到登录页面而不是首页更有意义。
评论
为什么将用户发送到登录屏幕,而不是通过登录屏幕发送用户并再次实际登录?我理解使现有会话无效的建议听起来很明智,但是“我两次输入了复杂的新密码,而您仍然不知道我是谁,并且您立即希望我再次输入它”,这是非常令人沮丧的用户体验。
– TessellatingHeckler
2015年11月10日在18:01
您在第一段中写的内容以及建立在什么基础上的第一点(...使所有现有会话无效)不是OWASP备忘单中所写的内容(该会话应无效)。
– pabouk
2015年11月11日在9:04
用户登录的事实不会使现有会话无效。
–TomášZato-恢复莫妮卡
2015年11月11日上午10:58
正如我之前评论的那样,您列出的所有这些内容都可以轻松完成,而无需进入登录页面。因此,删除所有不能回答问题的内容,可以归结为最后一段:“不知道,我想这是对可用性的建议。”您确定找不到任何与安全性相关的原因吗?或至少详细说明了为什么具有良好的可用性?
–重复数据删除器
2015年11月12日4:11
-1这根本无法回答问题!参见@TessellatingHeckler的评论。 (对不起,我不能与自己的代表-1)。
–帕维尔
2015年11月13日9:19
#2 楼
保护可能受到威胁的帐户上的会话如果安全地更改了密码后的会话管理,则无需实际重定向到登录页面。也就是说,只要所有当前会话标识符都无效并且当前会话附加到新的会话标识符(通常作为身份验证cookie中的令牌发布-cookie仅发送到刚刚更改了密码的会话),就可以不会威胁已经在帐户中的攻击者保持登录状态。
OWASP文章
下面解释了OWASP文章的基本原理。它的安全性没有问题,但是存在一些可用性问题。
当用户希望保护其帐户安全时,通常会使用密码重置功能。<br />
重置密码后,所有现有会话均无效,系统将确保只有拥有新密码的人才能登录。
例如,攻击者使用旧密码访问了该帐户已登录。重置所有会话将注销攻击者。
为什么注销当前用户,我听到你问?
好吧,攻击者正骑在当前用户的会话,例如使用会话固定漏洞。这意味着攻击者与真实用户具有相同的会话。重置当前会话还可以确保没有人没有访问权限。
上面引述中的登录页面重定向实际上描述了您应该登录用户的事实。当前和所有会话之外(但不存在阻止您将它们放入具有新标识符的新会话中的风险)。
评论
如何使当前会话无效并将其置于新会话中,必须将用户引导到登录页面?
–重复数据删除器
2015年11月11日下午4:23
我认为只要当前会话和所有其他会话都无效,它就不会起作用。为当前客户端创建一个具有新会话令牌值的新会话将满足上述安全要求,并将征服绕过该会话或获得先前密码的攻击者。
– SilverlightFox
2015年11月11日在10:51
因为如果您刚刚注销它们,他们将要重新登录!
– colmde
2015年11月11日13:00
#3 楼
从netsec的角度来看,其他答案可能更正确,但我想补充一点,您还可以确保用户实际上能够使用其新密码登录。如果出现问题(例如浏览器自动填充旧密码),这将很明显。它还可以防止用户使用密码重置作为登录名。在我的一个帐户上,回答安全问题比记住密码更容易,因为每次重置密码时我都必须设置一个唯一密码,并且忘记了密码。
评论
是的,“ OhNoSecond”是您认识到的一次很棒的信息,它使您意识到自己在重置密码时输入了错误的密码,现在却不知道密码是什么。就像看您锁着的汽车一样,可以看到驾驶员座椅上的钥匙。
–user82913
2015年11月10日20:00
@nocomprende但是,如果只有车门具有基于电子邮件的重置
–wavemode
2015年11月12日下午14:55
我不知道如何将钥匙锁在车上。您需要钥匙来锁定它!
–user7146
2015年11月12日17:09
@Alex Easy。锁上门,将钥匙放在车上,然后关上门。人们一直在这样做。还是您的车上有什么特别的东西可以防止这种情况?
– Ajedi32
15年11月12日在19:45
+1这实际上回答了问题(与另外两个被否决的答案不同)。
–帕维尔
15年11月13日在9:29
#4 楼
将您发送到登录页面的原因仅是一种与安全性相关的原因,因为所有旧会话都可能失效,并且您当前的活动会话已自动更改为替换密码:它使用密码重置来登录更加繁琐,从而导致您使用它的频率降低,从而更安全地防止它被窃听和意外泄露。
还有一个可用性原因可以将您发送到该位置:它可以确保您可以实际使用新密码,并且浏览器中的所有密码缓存都将得到更新。
评论
@Calimo接受的答案实际上并没有给出重定向到登录页面的理由;从程序员的角度来看,它提供了一个理由来做一些相关的事情,但是对于用户来说似乎是完全不同的。
– Briilliand
2015年11月12日在22:55
#5 楼
如果允许用户让浏览器存储其密码,则将用户重定向到登录页面将使浏览器可以在该页面上捕获新密码。否则,下一次用户登录浏览器时,将使用旧密码“有效地”预填充密码字段-如果用户不了解正在发生的情况,此操作可能会引起混乱。#6 楼
如果我们注意安全对策,这非常简单。实际上,它将使您所有活动的会话以及造成麻烦的窃取设备失效。评论
而且这不能以更加用户友好的方式完成吗?我看不到,需要重新登录的部分在哪里?
–重复数据删除器
2015年11月11日在16:06
#7 楼
除了提供用于建立新的有效会话,验证新密码是否有效以及注销当前会话的简便机制外,还可以使用户第三次输入密码,从而使记住更加容易。#8 楼
除了此处提到的许多其他要点外,从可维护性/强化/审核的角度来看,将会话创建机制限制为仅一个入口点是有好处的。用户在锁定状态下重置密码即使在跳过任何已有的身份证明恢复证明后,退出状态也不一定被视为已登录用户,否则在进行审核/笔测试时还需要测试其他顺序。
#9 楼
如果您在重置密码后立即再次登录a),则您比三天后更容易记住3秒钟的密码。
b)然后,浏览器可以询问用户是否要使用新密码更新保存的密码,然后浏览器会在登录页面上记住该密码。
评论
也许这只是一个小问题,并不是那么重要,但这确实使用户无法在其他地方输入他们的详细信息……他们有时会做出疯狂的事情所以我可以将新密码存储在密码管理器中:)
这将取决于密码重置机制。用户因为不记得密码而重置密码,因为他通常没有登录,所以通常不会进行会话。IMO如果“会话”是指其他用户创建的会话,则句子的措词方式可能存在问题在同一帐户上。
我本来以为这是用户体验,所以输入新密码更快。
这是一个古老的问题,但是我很好奇这是否可以在身份应用程序(如Ping Identity,Oracle Access Manager,WSO2 Identity Server,Okta等)中立即实现?