gpt4 book ai didi

security - 通过电子邮件重置密码,无需数据库表

转载 作者:行者123 更新时间:2023-12-04 10:31:51 25 4
gpt4 key购买 nike

通过邮件重置用户密码的正常流程是这样的:

  • 生成随机字符串并存入数据库表
  • 给用户的电子邮件字符串
  • 用户点击包含字符串
  • 的链接
  • 字符串根据数据库进行验证;如果匹配,则重置用户的密码

  • 但是,维护表格和过期旧字符串等似乎有点不必要的麻烦。这种替代方法有什么明显的缺陷吗?
  • 生成用户现有密码的 MD5 哈希值
  • 将哈希字符串通过电子邮件发送给用户
  • 用户点击包含字符串
  • 的链接
  • 通过再次散列现有密码来验证字符串;如果匹配,则重置用户的密码

  • 请注意,用户的密码已经以散列和加盐形式存储,我只是再次散列它以获得唯一但可重复的字符串。

    是的,有一个明显的“缺陷”:这样生成的重置链接不会过期,直到用户更改密码(单击链接)。我真的不明白为什么这会成为一个问题——如果邮箱受到威胁,无论如何用户都会被搞砸。并且没有重复使用的风险,因为一旦用户的密码被更改,重置链接将不再匹配。

    最佳答案

    补救obvious flaw , 将当前日期(以及更多与时间相关的信息表示一天的当前分数,即使一天太长)到您正在散列的内容中以生成神秘字符串并检查它 - 这使字符串“过期”(如果您想要更长的“到期”,您可以检查前一个以及当前日期或分数)。所以在我看来你的计划是非常可行的。

    关于security - 通过电子邮件重置密码,无需数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2755708/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com