paip.找回密码功能流程设计(通过email)

找回口令的功能
找回口令的功能一定要提供。但是很多朋友并不知道怎么来设计这个功能。我们有很多找回口令的设计,下面我逐个点评一下。

不要重置用户的密码。因为这有可能让用户的密码遭到恶意攻击。当然,你要发个邮件给用户让其确认,用户点击邮件中的一个链接,你再重置。我并不推荐这样的方法,因为用户一般都会用笔记下来这个很难记的口令,然后登录系统,因为登录系统时使用了“记住密码”的功能,所以导致用户不会去修改密码,从而要么导到被写下来的密码被人盗取,要么又忘记了密码。

好一点的做法——通过邮件自行重置。当用户申请找回口令功能的时候,系统生成一个MD5唯一的随机字串(可通过UID+IP+timestamp+随机数),放在数据库中,然后设置上时限(比如48小时内),给用户发一个邮件,这个连接中包含那个MD5的字串的链接,用户通过点击那个链接来自己重新设置新的口令。

此连接单次使用

伪码设计
uname=input()
$md5str=md5(uname+ip+timestamp+ramode+key)
$unameEncode=3des(uname+key)
url=http://host:port/app/resetPwd.jsp?sign=$md5str&u=$unameEncode
$emailtxt= getTemplete(c:\templete.htm)
$emailtxt= replace(@username,@url)
sendmail($emailtxt);
save(uname,$md5str,nowtime)
log(uname,time,event:findbackpwd)
/user recepte mail.open mailbox ,click to resetPwd.jsp

check()
{
$uname=un3des( getpara(u));
$sign=getpara(sign);
 if(NOTexist( $sign,$uname))
 tips (no this href) ;exit;
if(outtime($sign,$uname))
 tips (only 48 hr avild) ;exit;

}
show (uname,textbox:pwd,texbox:pwd2)
//when submit
check() 
$uname=getRec($sign,un3des($unameEncode))
resetPwd( $uname,$newpwd,$newpwd2);
deleteSave($sign,$uname) //confirm only signle use

更好一点的做法——多重认证。比如:通过手机+邮件的
方式让用户输入验证码。手机+邮件可能还不把握,因为手机要能会丢了,而我的手机可以访问我的邮箱。所以,使用U盾,SecureID(一个会变化的6位数token),或是通过人工的方式核实用户身份。当然,这主要看你的系统的安全级别了。

paip.找回密码功能流程设计(通过email)相关推荐

  1. javaWeb实现使用邮箱邮件找回密码功能

    JSP+Jmail+JavaBean 发邮件(转)2010-08-23 18:052007年04月14日 14:32/* * SendMail.java * * Created on 2007年3月3 ...

  2. django重置密码发送html邮件,Django实现发送邮件找回密码功能

    在各大网站上,一定都遇到过找回密码的问题,通常采用的方式是通过发送带有验证码的邮件进行身份验证,本文将介绍通过Django实现邮件找回密码功能. 找回密码流程 功能流程: 1.首先在用户登录界面,添加 ...

  3. python 发邮件 无需密码_Django实现发送邮件找回密码功能

    在各大网站上,一定都遇到过找回密码的问题,通常采用的方式是通过发送带有验证码的邮件进行身份验证,本文将介绍通过Django实现邮件找回密码功能. 找回密码流程 功能流程: 1.首先在用户登录界面,添加 ...

  4. php实现短信找回密码,thinkphp5怎么调用云片接口实现发送短信验证码找回密码功能...

    thinkphp5怎么调用云片接口实现发送短信验证码找回密码功能 发布时间:2020-12-11 12:33:42 来源:亿速云 阅读:60 作者:小新 小编给大家分享一下thinkphp5怎么调用云 ...

  5. html5实现短信验证修改密码,thinkphp5如何调用云片接口实现发送短信验证码找回密码功能...

    下面由thinkphp框架教程栏目给大家介绍thinkphp5如何调用云片接口实现发送短信验证码找回密码功能,希望对需要的朋友有所帮助! 思路: 1.用户输入手机号,请求获取短信验证码. 2.thin ...

  6. 找回密码功能 java_Java实现邮件找回密码功能

    本文实例为大家分享了Java实现邮件找回密码功能的具体代码,供大家参考,具体内容如下 1.有个需求就是,忘记密码后通过邮箱找回.现在的系统在注册的时候都会强制输入邮箱,其一目的就是 通过邮件绑定找回, ...

  7. 找回密码功能的流程总结

    公司业务里需要做密码找回的功能. 使用邮件验证的方式实现密码找回. 当用户忘记自己密码的时候 , 可以通过输入自己的邮件号 , 系统发送携带验证码的邮件号来验证用户身份. 但是使用这样的验证方式,当用 ...

  8. php 找回密码思路,PHP找回密码机制流程

    笔者前段接了一个项目,其中包含了一个用户注册系统,用到了密码找回功能,简单整理一下,写点心得. 首先,我们假定你已经有了一个用户注册系统.其中用户表可能如下: create table member( ...

  9. php 找回密码机制流程

    首先,我们假定你已经有了一个用户注册系统.其中用户表可能如下: create table member( id int unsigned not null auto_incremtnt, userna ...

  10. SpringBoot实现通过邮箱找回密码功能

    养成习惯,先赞后看!!! 目录 1.前言 2.步骤 2.1导入依赖 2.2开启邮箱的SMTP服务 2.3配置application.yaml文件 2.4 编写逻辑的步骤 2.4.1创建pm_valid ...

最新文章

  1. RabbitMQ 入门系列(4)— RabbitMQ 启动、停止节点和应用程序、用户管理、权限配置
  2. 使用pytest对django项目单元测试
  3. 【带你重拾Redis】Redis 主从架构
  4. 【强化学习】Q-Learning
  5. MySQL分库分表分库准备(6th)
  6. keras优化算法_自然场景文本识别(OCR),keras-yolo3-densenet-ocr
  7. 信息学奥赛一本通(1006:A+B问题)
  8. supersocket新的配置属性 textEncoding
  9. 哈佛研发出蛇形柔性机器人,复杂地面无脚行走关键在“人工皮肤”
  10. ios睡眠分析 卧床 睡眠_HealthKit睡眠分析
  11. 「程序猿 DD」星球8月拼团活动正式开启!
  12. 本地化、国际化、全球化是指什么?
  13. STM32---FLASH闪存
  14. dedecms后台界面更改
  15. netlink实现驱动和应用层通信
  16. 上海产品运营招聘面试技巧分析
  17. 固态变 SATAFIRM S11
  18. python三人同行七十稀_三人同行(三人同行什么意思)
  19. html打印纸张尺寸设置100*150,打印机纸张大小怎么设置 打印机纸张大小设置方法【详细介绍】...
  20. 【数学建模】灰色关联(Matlab代码实现)

热门文章

  1. Dubbo源码解读:appendAnnotation [01]
  2. Educational Codeforces Round 43 (Rated for Div. 2)题解
  3. 自管理图形处理结构框架
  4. mysql 年龄计算(根据生日字段)
  5. Java NIO 和 IO的区别
  6. 为什么你作为一个.NET的程序员工资那么低?
  7. 微软Windows7对Vista的几点改进
  8. IT项目如何做好进度管理
  9. Mybatis-学习笔记(N)mybatis-generator 生成DAO、Mapper、entity
  10. Git-第四篇廖雪峰Git教程学习笔记(3)远程仓库,克隆远端库