Asp.net “为”编写代码的最佳方法;“忘记密码”;
net网站,我想实现忘记密码。我正在使用以下步骤Asp.net “为”编写代码的最佳方法;“忘记密码”;,asp.net,security,passwords,Asp.net,Security,Passwords,net网站,我想实现忘记密码。我正在使用以下步骤 具有登录Id、电子邮件Id和验证码输入框的表单 当用户输入详细信息并提交时,在验证后的后端将生成新密码并替换数据库中的旧密码 新密码通过电子邮件发送给用户 请帮我看看我做得对不对 是否有其他安全机制用于相同的目的 [编辑] 谢谢,我收到了你的答复。实际上,这是一种安全机制。但在这里我没有什么疑问 当用户在忘记密码页面输入loginId和电子邮件地址时,我应该向他显示什么消息 有效用户和恶意用户的消息是否相同 使用CSRF令牌的优势?有任何帮助/链
请提供帮助?实现这一点的方法有很多。正如您所说,生成新密码并将其发送到注册的电子邮件地址是一种方法。但我不建议你这么做,因为每次有人试图猜我的密码时,我的密码都会被重置 相反,到目前为止,我所看到的最好的事情就是简单地用一个链接发送注册的电子邮件,该链接将开始密码重置过程。您甚至可以通过显示注册中使用的电子邮件地址的屏蔽版本,让用户知道要检查哪个电子邮件地址: 已将电子邮件发送至
******
@hotmail.com。请检查您的收件箱以继续
请务必考虑那些可能忘记注册电子邮件地址的人——通常一些安全问题是提供这些信息的好方法。我最近已经这样做了。当用户输入用户名或电子邮件地址时,我们会生成一个唯一的令牌,并将其作为链接的一部分发送给他们。收到该电子邮件后,他们单击链接,并自动登录,进入“我的帐户”屏幕,并提示重置密码
当然,这100%依赖于电子邮件客户端的安全性,但从可用性的角度来看,这是很难克服的。我可以理解为什么您需要验证码,但我会采取不同的方法
您应该检查问题的答案:from on security.stackexchange
这是我在这个问题上找到的最完整的答案。我也建议你阅读这篇文章: + 1考虑用户注册foo@bar.com说“我们在您使用的电子邮件地址向您发送了一个链接…以foo@开头”有任何安全问题吗。。。对这一策略有何评论?@pcampbell-+1我真的很喜欢这个想法,因为我有时想知道我注册的电子邮件是什么,但我认为更好的方法是提供域名而不是电子邮件地址(@hotmail.com,@yahoo.com,@gmail.com),因为我认为大多数人可能都有相同的电子邮件地址,只是在不同的提供商。我喜欢看到我的电子邮件地址的伪装版本。我已经更新了我的帖子来反映这一点。你的意思是,首先我需要验证用户电子邮件,然后如果验证通过了,我就需要验证