忘记密码过程的最佳做法是什么?

问题描述 投票:1回答:2

我目前正在开发ac #web应用程序,允许用户使用密码登录。 我需要包含的功能是忘记密码功能。

忘记密码的推荐流程是什么?

我在考虑这个:

  • 用户点击忘记密码,输入电子邮件地址
  • 邮件已发送
  • 点击电子邮件中的链接(链接仅在一段时间内有效)
  • 带到网站并要求输入新密码(他们是否应该回答安全问题?)
  • 密码已更改,电子邮件已发送给此类用户
  • 用户现在可以使用新密码登录
security passwords forgot-password
2个回答
3
投票

您的想法看起来很稳固,但我会添加一些其他注意事项:

  • 确保您在使用的电子邮件中生成的令牌使用专为随机化而设计的.Net Framework加密类,而不是看似随机但不是为此目的而设计的。
  • 发送重置电子邮件时不对该帐户采取任何操作(否则,如果他们知道他们的电子邮件,人们就可以锁定其他人的帐户)
  • 添加速率限制器,以确定可以为给定电子邮件生成每小时的重置次数。 否则,某人可以通过以下方式管理用户:(a)使用x个不良密码来锁定帐户,然后(b)为他们生成重置电子邮件的速度超过电子邮件系统可以提供的速度。
  • 在可能的情况下,请遵循其他系统,如OpenID。 当你自己卷起来时,很容易出错。

0
投票

我们有两种方法来检索忘记密码:1。通过注册的电子邮件ID 2.通过注册的手机号码

注册电子邮件ID:

一种。 要求用户提供已注册的电子邮件ID

湾 系统会检查提供的电子邮件ID是否在数据库中可用

C。 如果数据库中有电子邮件ID,则系统会发送电子邮件以重置密码,但如果数据库中没有电子邮件ID,则系统会显示警告消息。

d。 用户必须在重置忘记密码时提供强密码。

即 密码重置成功,并且在数据库中也相对于电子邮件ID进行了更改。

注册手机号码:

该过程与电子邮件几乎相同,但在这种情况下,OTP将通过注册的手机号码发送。 我们需要为此集成第三部分SDK,或者我们可以在IOS中使用imessage。

© www.soinside.com 2019 - 2024. All rights reserved.