保障Web应用安全:用户认证与会话管理全解析
应对用户遗忘密码问题
人不是计算机,总会遗忘一些事情,甚至是像登录优秀Web应用所需的凭证这类重要信息。因此,设置一个安全的密码恢复机制至关重要。
现代Web应用中最常见的恢复系统是通过电子邮件实现的。系统会向注册邮箱发送一个链接,提示用户将当前(已遗忘)的密码更改为新密码。对于大多数应用来说,这种方式足够了,但如果应用极其关键,则需要更安全的恢复流程。
- 增加恢复问题或二级密码 :可以添加一组恢复问题或二级密码,用户在恢复过程中必须提供这些信息。这样能阻止那些获取了受害者邮箱收件箱权限的攻击者,因为他们不知道这些问题的答案或二级密码。恢复答案应被视为更容易记忆的密码,同样需要进行哈希处理,并且应用程序应将恢复问题作为一个整体进行验证。如果有三个问题,用户必须全部回答正确才能继续。若有一个回答错误,系统会显示错误信息,但不要指明是哪个问题答错了。
- 登录表单处理 :处理实际登录表单时,也应遵循相同的原则。不要具体说明是用户名还是密码错误,只需提示组合错误。同时,要防止攻击者通过暴力破解来获取恢复问题的答案,可限制尝试次数并设置延迟。
- 验证邮箱地址 :使用基于电子邮件的恢复系统时,要始终验证用户的邮箱地址,并且在用户更改邮箱地址时,必须重新验证并使用额外的身份验证层。否则,攻击者一旦攻破账户,就可以毫无阻碍地更改邮箱地址,将合法用户永久锁定在外。
增加额外认证层提升安全性
对于重要的应用程序,除了用户名和密码之
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



