关于邮箱找回密码
关于邮箱找回密码,大概是什么思路实现
谢谢
回复内容:
关于邮箱找回密码,大概是什么思路实现
谢谢
你这个问题很简短,但是涉及的范围很广。
这里面会涉及到很多安全问题,稍有不慎就会有不安全因素。
首先,给你教科书级别的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(用户邮箱,当前时间戳,私钥)+用户邮箱明文,当前时间戳明文
<code>点开这个链接之后先判断时间戳合当前时间之间是否超时。没超时则再次用``` md5(用户邮箱,当前时间戳,私钥)</code>
整个过程由于私钥都在服务端脚本,因此只要它不被泄露,这个系统就是安全的 整个过程理论上没什么问题。
楼上都说的比较好 楼主可以总结一下

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

CakePHP 是 PHP 的开源框架。它的目的是使应用程序的开发、部署和维护变得更加容易。 CakePHP 基于类似 MVC 的架构,功能强大且易于掌握。模型、视图和控制器 gu

登录 CakePHP 是一项非常简单的任务。您只需使用一项功能即可。您可以记录任何后台进程(如 cronjob)的错误、异常、用户活动、用户采取的操作。在 CakePHP 中记录数据很容易。提供了 log() 函数

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写

CakePHP 是一个开源MVC 框架。它使开发、部署和维护应用程序变得更加容易。 CakePHP 有许多库可以减少大多数常见任务的过载。
