【问题标题】:Email user new link to create a password电子邮件用户新链接以创建密码
【发布时间】:2013-06-17 04:12:19
【问题描述】:

对于密码恢复,我的 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 加密。

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

【问题讨论】:

    标签: asp.net security passwords forgot-password


    【解决方案1】:

    快速回答:没有。

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

    还有OWASP Cheat Sheet on Password Reset

    【讨论】:

    • 这实际上是一个很好的解决方案,我自己使用它。 +1
    猜你喜欢
    • 2013-02-17
    • 2019-06-18
    • 2013-06-24
    • 2018-08-17
    • 1970-01-01
    • 1970-01-01
    • 2018-08-10
    • 2017-12-18
    • 2018-03-12
    相关资源
    最近更新 更多