Security 密码重置令牌的过期时间

Security 密码重置令牌的过期时间,security,brute-force,forgot-password,Security,Brute Force,Forgot Password,当用户忘记密码时,他们可以重置密码(在大多数网站上)。他们通过接收带有重置令牌的电子邮件,然后使用该令牌设置新密码来完成此操作。此令牌通常在一段时间后过期,以防止猜测 假设令牌是256位的。用大量的超级计算机来实现这一点仍然需要(非常粗略地)10^50年的时间。也就是说,根据目前的知识无法完成,绝对不能在1小时内完成(正常有效期)。现在的问题是:我们为什么要防止猜测呢?猜测并不是你真正要保护它的东西。正如你所想,熵大小本身就可以解决这个问题 过期主要是为了减少对该令牌可能进行的未经授权的访问,因

当用户忘记密码时,他们可以重置密码(在大多数网站上)。他们通过接收带有重置令牌的电子邮件,然后使用该令牌设置新密码来完成此操作。此令牌通常在一段时间后过期,以防止猜测


假设令牌是256位的。用大量的超级计算机来实现这一点仍然需要(非常粗略地)10^50年的时间。也就是说,根据目前的知识无法完成,绝对不能在1小时内完成(正常有效期)。现在的问题是:我们为什么要防止猜测呢?

猜测并不是你真正要保护它的东西。正如你所想,熵大小本身就可以解决这个问题

过期主要是为了减少对该令牌可能进行的未经授权的访问,因为有很多方法可以从电子邮件中泄漏该令牌。与您不应将用户密码发送到其电子邮件地址的原因完全相同。
其他人可能临时访问电子邮件帐户,碰巧与帐户所有者一起阅读,或站在他们身后,等等。各种各样的恶作剧都有可能发生


此外,没有人希望数据库表中充满旧的、但应该是临时的一次性令牌——每个开发人员都喜欢清理垃圾数据。

猜测并不是真正保护它的目的。正如你所想,熵大小本身就可以解决这个问题

过期主要是为了减少对该令牌可能进行的未经授权的访问,因为有很多方法可以从电子邮件中泄漏该令牌。与您不应将用户密码发送到其电子邮件地址的原因完全相同。
其他人可能临时访问电子邮件帐户,碰巧与帐户所有者一起阅读,或站在他们身后,等等。各种各样的恶作剧都有可能发生


此外,没有人希望数据库表中充满旧的、但应该是临时的一次性令牌——每个开发人员都喜欢清理垃圾数据。

假设您指的是256字节。你也从来没有提到过加密方法。即使有一个巨大的密钥,如果你的加密不好,破解也很容易。不,我指的是位,只是一个数字,没有加密密钥。基本上只是猜测一个256位的数字。啊,当然,是很长时间了。假设你指的是256字节。你也从来没有提到过加密方法。即使有一个巨大的密钥,如果你的加密不好,破解也很容易。不,我指的是位,只是一个数字,没有加密密钥。这基本上只是猜测一个256位的数字。啊,当然,是的,很长时间了。你不能真的阻止其他人访问电子邮件帐户,因为那个人当时可以请求一个新的令牌。有两件事可以避免有人越过你的肩膀看你。首先,令牌是256位随机的,不容易记住。其次,您可以将其隐藏在按钮(html电子邮件)中。(我想清理你的数据库是一个很好的论据,但没有那么多安全相关的东西,比如说肯定要等48小时。)当然,你可以做很多小的修饰来隐藏令牌,但没有人能保证它,这不是真正的重点——这个过程必须是设计安全的,不依赖于某些前端巫术。是的,当然,如果有人永久访问该帐户,可以请求一个新的密钥,但这里的关键字是“泄漏”和“临时”。你不能真正阻止其他人访问该电子邮件帐户,因为我想说,那个人当时可以请求一个新的令牌。有两件事可以避免有人越过你的肩膀看你。首先,令牌是256位随机的,不容易记住。其次,您可以将其隐藏在按钮(html电子邮件)中。(我想清理你的数据库是一个很好的论据,但没有那么多安全相关的东西,比如说肯定要等48小时。)当然,你可以做很多小的修饰来隐藏令牌,但没有人能保证它,这不是真正的重点——这个过程必须是设计安全的,不依赖于某些前端巫术。是的,当然,如果有人永久访问该帐户,可以请求新密钥,但这里的关键字是“泄漏”和“临时”。