基于邮箱的密码找回的逻辑设计

摘要:密码找回

对于一个成熟的系统来说,密码找回是必不可少的。但是如果密码找回的逻辑没有处理好,很可能导致用户的密码被他人修改的风险。

一、获取用户邮箱。

通过一个页面实现邮箱的获取,可以通过添加一些加油噪音的数字验证码来防止非人为的代码攻击的操作。

基于邮箱的密码找回的逻辑设计

二、验证邮箱的存在性,然后向邮箱发送一个**邮件,邮件是一个URL请求。

下面给出一个例子仅供参考:

http://localhost:8080/test/mail.do?act=find_password&usr=baowei&key=1526993524781

请求的核心是包含验证消息一段hash散列,也就是key的值,这个值应该要包含用户的基本信息以及日期信息,这样可以保证验证的正确性,同时保证验证有时间限制,用户不可以通过这一个URL重复修改密码,也就防止了别人通过这个URL修改别人信息。为了防止别人可以伪造key值,所以一般将key值的原信息加密hash的方式得到一个不可逆的值。

三、点击URL的时候转发到修改页面

基于邮箱的密码找回的逻辑设计

此处使用的是转发(forward)而不是重定向,因为重定向之后相当于直接定位到这个页面上,和之前的URL请求没有关系了。而我们因为还需要之前URL的验证消息,所以要转发过来。

四、修改密码

最后就是修改密码,此时记得将原先的验证消息再发一次,再验证一遍合法性,合法之后正常修改就好了。