2

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

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

我正在考虑这个:

  • 用户点击忘记密码,输入邮箱地址
  • 邮件已发送
  • 单击电子邮件中的链接(链接仅在时间段内有效一次)
  • 被带到网站并要求输入新密码(他们是否也应该回答安全问题?)
  • 密码已更改,已向此类用户发送电子邮件
  • 用户现在可以使用新密码登录
4

2 回答 2

3

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

  • 确保您在电子邮件中生成的令牌使用的是为随机化设计的 .Net Framework 加密类,而不是看似随机但并非为此目的而设计的东西。
  • 发送重置电子邮件后不要对帐户采取任何操作(否则,如果他们知道他们的电子邮件,人们将能够锁定其他人的帐户)
  • 为给定的电子邮件添加每小时可以生成多少次重置的速率限制器。否则,有人可以通过以下方式对用户进行 DOS:(a) 使用 x 个错误密码来锁定帐户,然后 (b) 为他们生成重置电子邮件,速度快于电子邮件系统的发送速度。
  • 在可能的情况下,请遵循其他系统,例如 OpenID。当你自己滚动时,很容易出错。
于 2012-12-13T01:46:51.127 回答
0

我们有两种找回忘记密码的方法: 1. 通过注册的邮箱 2. 通过注册的手机号码

注册邮箱:

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

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

C。如果数据库中存在电子邮件 ID,则系统发送电子邮件以重置密码,但如果数据库中不存在电子邮件 ID,则系统显示警报消息。

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

e. 密码重置成功,并且数据库中的电子邮件 ID 也发生了变化。

注册手机号:

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

于 2017-11-16T07:28:47.090 回答