• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
james1207

博客园    首页    新随笔    联系   管理    订阅  订阅

忘记密码实现方案

在一般的web网站中,都无法避免的涉及帐号密码等的管理,有帐号,密码,也就有忘记帐号,密码,更可能有帐号密码被盗,这些帐号信息轻则使自己原来的历史信息丢失,严重可能涉及到帐号相关积分,金钱等等。

一般如何解决该问题呢?最简单的方案就是由管理员对帐号密码进行重置,如果普通用户遗忘帐号或密码时,可以通过邮件告知系统管理员,然后管理员进行重置操作,这种方式在一些企业内部系统中比较常用,复杂一点的,面向大众的系统中,因为没有系统管理员可以对所有用户进行直接认证,因此必须让用户能自主找回密码。自主找回密码又分几种实现,第一种,采用密码重置问题的形式,即在注册帐号密码时,须填写密码重置问题,密码重置答案,这样在忘记密码时则可以通过帐号和密码重置答案进行密码重置,这种实现方式如果帐号忘记了或者密码重置答案忘记了就无法进行。第二种,通过注册邮箱的形式找回帐号密码,因为考虑到大部分人就一两个常用邮箱,而注册邮箱一般也就采用这个常用的邮箱,常用邮箱的密码一般不会出现忘记的情况,所以这种方式在大多数网站中都比较常用,后面也会重点介绍。第三种,在QQ等网站中,也会根据用户经常登录的IP地址,历史密码,好友认证等方式进行忘记密码的重置功能,该方式实现起来相对复杂,需要记录的历史信息较多,比较少用。

通过注册邮箱找回密码,又分几种实现方式,一种是直接将随机密码发送到用户注册邮箱,用户使用该密码登录后,再更改自己适合的密码,该方式实现也较简单,但是对用户不是很友好,另外一种则是通用方式,即发送一个基于一定规则生成的随机码链接给用户,用户点击该链接后,即可任意更改密码,该方式出于安全的角度考虑,一般只能使用一次,而且会有相应的时效限制。因为如果可以使用多次,当你在浏览器地址栏输入该链接更改密码后,后面一个人也根据历史浏览记录,同样打开该链接,不就可以更改你的密码,然后拿到相应你的信息了?该随机码如何实现呢?

当用户点击“通过邮箱找回密码时”,通过用户的帐号,生成一个相关的随机码,然后将该帐号,随机码数据保存到数据库,再根据这些信息生成一个认证链接发送给用户,如果用户再次点击“通过邮箱找回密码时”,这时则需要先将之前的随机码置为无效,并将该次的认证信息发送给用户,当用户在邮箱中点击认证链接时,先判断该随机码是否是有效的,如果是有效,则进入更改密码的界面,如果不是,则提示该页面已过期,然后回到首页。

posted @ 2013-08-26 20:02  Class Xman  阅读(387)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3