php 邮箱找回,关于邮箱找回密码

关于邮箱找回密码,大概是什么思路实现

谢谢

回复内容:

关于邮箱找回密码,大概是什么思路实现

谢谢

你这个问题很简短,但是涉及的范围很广。

这里面会涉及到很多安全问题,稍有不慎就会有不安全因素。

首先,给你教科书级别的OWASP找回密码设计指南:

https://www.owasp.org/index.php/Forgot_Password_Cheat_Sheet

然后给你三篇乌云的文章,用别人的前车之鉴做参考,看看自己有没有类似的不安全设计:

密码找回逻辑漏洞总结:

http://drops.wooyun.org/web/5048

密码找回功能可能存在的问题

http://drops.wooyun.org/papers/287

密码找回功能可能存在的问题(补充)

http://drops.wooyun.org/web/3295

我先说下我的思路:

1.用户输入邮箱,去数据库查询 该邮箱是否存在

2.如果存在,立即生成一个路由连接,比如 www.a.com/lost/passpord/key/bac.html

3.key=>bac bac 是某种算出生成的唯一哈希值,放在redis 等缓存系统中,24小时,或者2小时

内有效,让将这个连接发送到该邮箱中,用户点击链接,执行找回密码

4.在找回密码的时候,第一步验证 redis缓存中是否存在该key 哈希值,再执行update重置密码即可.

一般找回密码都是有时效,所以时间是少不了的,然后需要修改的用户也必须包含在里面。

随便找个带密钥的可逆加密函数处理这两个信息生成一个token就可以了。

我的一个思路不需要用到redis和数据库,完完全全不需要独立存储用户找回密码的hash。

楼上有人说的办法在大型业务中,还得搞几台独立的redis服务器啊,有点烧钱。

我的思路是

先用`

md5(用户邮箱,当前时间戳,私钥)+用户邮箱明文,当前时间戳明文

点开这个链接之后先判断时间戳合当前时间之间是否超时。没超时则再次用```

md5(用户邮箱,当前时间戳,私钥)

整个过程由于私钥都在服务端脚本,因此只要它不被泄露,这个系统就是安全的 整个过程理论上没什么问题。

楼上都说的比较好 楼主可以总结一下

相关标签:php

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值