忘记密码功能的安全实现(邮件方式)



最近在做P2P网贷系统,由于对安全的要求比较高,因此做每一步都比较小心,考虑再三。

在做忘记密码功能时考虑到邮箱链接的安全性,去网上参考下别人的意见,查询后发现许多网站的这个功能都存在漏洞,如:

手机方式:http://www.wooyun.org/bugs/wooyun-2010-018055    

邮件方式:http://www.2cto.com/Article/201305/215934.html

     http://www.wooyun.org/bugs/wooyun-2013-017322

吓到了吧,所以任何小的功能稍加不注意,可能就是一个大的漏洞

我的解决方案:(有不同意见的可以马上喷):

1.存储数据库是必须的,先建数据库表用来存储每次发送的信息,表结构如下

编号:就是与某个用户进行关联,标注是哪个用户点击了忘记密码(在发送邮件前肯定有叫用户输入信息如用户名,邮箱地址),这样我们就能锁定该用户了

过期时间:就是设定邮件在多少时间内有效

随机md5值:是用来唯一标注邮件链接的,可以生成时间戳然后用md5进行加密

类型:用来区分不同的链接,看你自己的需要

2.用户点击忘记密码后,我们需要他们输入用户名,邮箱地址来进行用户的认证,如果认证正确则向该用户发送一封重置密码的链接邮件,并将信息存入到该表中:

如下:

3.用户点击后重置密码后,程序进行验证,通过vcode和email到记录表中进行查询,如果存在表示该链接有效,

如果验证正确了就显示重置密码页面,重置成功后将那个记录进行删除(也可以添加一个字段来标注用户点击链接的次数,控制超过几次后就将过期)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值