💡
原文中文,约1700字,阅读约需4分钟。
📝
内容提要
本文记录了XDSec SSO开发过程中的经验,重点讨论了防止邮箱枚举和设计TOTP验证流程。通过设计接口避免泄露用户信息,并提出将JWT与TOTP结合的方案,以简化验证流程。
🎯
关键要点
-
项目旨在重新开发SSO,以解决原有系统用户信息管理复杂的问题。
-
设计过程中,防止邮箱枚举是一个重要考虑,特别是在用户登录和密码重置接口的设计上。
-
通过设计接口,避免直接泄露用户邮箱信息,例如在邮箱重置密码时,使用模糊提示来防止信息泄露。
-
为开启TOTP的用户设计了一个接口,通过随机返回信息来隐藏邮箱是否存在,从而防止攻击者获取用户信息。
-
在设计TOTP验证流程时,考虑到用户体验,提出将TOTP与JWT结合的方案,以简化验证流程。
-
建议将JWT作为接口返回值存储在前端,而不是放在cookie中,以便更好地管理登录状态和TOTP验证。
❓
延伸问答
XDSec SSO项目的主要目标是什么?
该项目旨在重新开发SSO,以解决原有系统用户信息管理复杂的问题。
如何防止邮箱枚举?
通过设计接口,避免直接泄露用户邮箱信息,例如在邮箱重置密码时使用模糊提示。
TOTP验证流程是如何设计的?
设计了一个接口,通过随机返回信息来隐藏邮箱是否存在,从而防止攻击者获取用户信息。
JWT与TOTP结合的方案有什么优势?
将JWT与TOTP结合可以简化验证流程,避免维护两套token,提高用户体验。
在设计过程中遇到的主要挑战是什么?
主要挑战是防止邮箱枚举和设计安全的用户验证接口。
如何管理JWT的存储?
建议将JWT作为接口返回值存储在前端,而不是放在cookie中,以便更好地管理登录状态和TOTP验证。
➡️