电子邮件用户新链接以创建密码

时间:2013-06-20 10:31:46

标签: asp.net security passwords forgot-password

对于密码恢复,我的vb.net应用程序使用以下格式的链接向用户发送电子邮件。

http://<password-reset page url>?id=<userid>&tpr=<times Password Reset>&time=<time when the link was generated>

Times Password Reset是用户使用密码重置链接重置密码的时间。它是数据库中的值,并且查询字符串中的值是匹配的。要确保相同的密码重置链接不能使用两次来重置密码。 Time用于检查在使用链接之前已经过了不超过24小时。 userid用于标识用户。

如果所有条件都匹配,则提示用户更改其密码。 使用AES加密的所有字段。

我想知道这种方法是否安全?

1 个答案:

答案 0 :(得分:1)

快速回答:否。

忘记您在网址中使用的所有参数。只需生成一个随机的,不可猜测的字符串(例如UUID)并将其作为参数放入URL中。然后通过您为他存储的电子邮件地址将该URL发送给用户。将UUID与您现在在URL中的所有参数一起存储在数据库中。当用户单击链接时,验证所有参数(时间戳等)并让他设置新密码。

也是OWASP Cheat Sheet on Password Reset