H6.11.3invalidate sessions after password reset设计研究

重置成功后需要使所有已登录设备的旧会话失效

别名: 改密踢下线 · reset session revocation · 找回后重新登录

概念解释

人找回密码,通常是因为旧秘密可能已经不在自己手里。重置成功后作废全部旧会话指服务器吊销该账号在改密前发出的所有刷新与访问令牌,各设备回到未登录,只有完成这次重置的端(或随即用新密码登录的端)拿得到新会话。这条是改密后的保险,不是日常在列表里踢某一台,也不是本机点退出。

机制

会话令牌一旦发出,就不检查当前密码哈希。攻击者若已持有旧会话,主人改密只换了以后登录的钥匙,入侵者仍留在里面改邮箱、关 MFA。全部作废把「我换了锁」落实成「屋里的人全部出去」。误伤是本人其它设备也要重新登录;这是找回场景下可接受的代价,因为找回本身已假设控制权可能丢失。作废必须包含刷新令牌和「记住我」;只清访问令牌会在几分钟后被刷新回来。当前这次重置流程发出的新会话要豁免,否则人改完密立刻被踢回登录,误以为失败。

怎么研究

布置「设备 A 已登录、设备 B 完成重置」,看 A 的令牌是否立刻失效。

自变量:作废范围(仅当前、除当前外全部、含刷新令牌与否)、重置页是否说明将退出其它设备。 因变量:A 随后的需认证请求是否失败、B 是否仍保持登录、人是否理解其它设备要重登。

不要把会话列表上的单条踢出实验搬过来——那是日常控制,威胁模型较弱。测量应打真实 API,而不是只看列表刷新。文案研究看人会不会因为害怕所有设备掉线而不敢重置;若如此,说明里要写清为什么必须掉线。

边界

企业 SSO 会话可能由 IdP 管,应用内改的是本地密码或绑定,作废范围要写清「本应用会话」还是「公司账号」。仅改显示名或偏好不是重置,不应踢会话。用户在已登录设置里主动改密、且能证明仍持有旧密码时,策略可以改成「可选踢其它设备」,因为控制权未假设丢失;自助找回不得用这个宽松选项。并发的「记住我」cookie、邮件客户端的专用密码、第三方 OAuth 授权,都要纳入「旧会话」清单,否则只踢了网页。

怎么落地

  • 自助重置提交成功即吊销该账号一切改密前的刷新/访问令牌与「记住我」,专用应用密码一并作废并提示重新生成。
  • 完成重置的那一端保持或立即建立新会话;其它端下次请求展示「密码已更改,请重新登录」。
  • 重置确认文案写明其它设备将退出,避免事后当成故障。
  • 验证:A 登录,B 走完找回改密,A 的旧 token 调接口失败,B 仍可用。检查「记住我」与邮件客户端专用密码是否一并失效。已登录设置里用旧密码改密的路径可另测,不得与自助找回共用「不踢设备」的默认。

延伸

  • 同组H6.11.1 找回流程不应通过验证问题泄露比密码更易猜测的信息 · H6.11.2 重置链接需要设置有效期并且一次性使用 · H6.11.4 找回过程中不应向未验证身份者暴露账号是否存在
  • 相邻H6.06 多设备会话 · H6.07 退出登录
  • 站内检索session invalidation · password reset · revoke all sessions

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/H6.11.3