过期重置密码电子邮件密钥

时间:2012-02-18 08:12:13

标签: php password-recovery

有关电子邮件重置密码密钥到期的标准是什么?

我的应用程序生成一个30个字符的字母数字键,该键附加到URL: http://site.com/reset/keygoeshere

重置密码后,该密钥将从用户的帐户中删除。

question谈到过期密钥,但另一位用户提到,如果电子邮件帐户遭到入侵,他们显然可以轻松申请新的重置密钥。

我认为这种方法的主要潜在漏洞是有人可能会尝试强制重置密钥,而他不知道密钥属于哪个帐户,他仍然可以更改某人的密码。

例如,我刚刚点击了3天前发送的Facebook重置链接,但仍然有效。

在标准操作方面是否需要密码重置密钥到期?如果是这样,我们应该让钥匙保持“新鲜”多长时间?

3 个答案:

答案 0 :(得分:4)

不能指望您处理被盗用的用户电子邮件帐户。然而,为了防止蛮力,需要短的到期时间,例如15分钟。如果用户请求重置密码,他们通常希望获得现在的访问权限,并且如果由于某种原因他们要求密码重置链接以便稍后使用,那么,拧紧它们,他们必须请求另一个。关于你链接的Q的第一个评论几乎总结了它,如果用户不喜欢你保证它们安全的事实,那就是他们的问题。

此外,您可以通过提出挑战问题使重置更安全。像“你的第一辆车是什么”这样的东西。这些类型的措施是标准的,虽然通常不难发现有关用户的信息,随机暴力破坏者可能不会打扰,特别是如果他只有15分钟的时间来尝试和暴力特定重置链接。

答案 1 :(得分:1)

一些注意事项:

  1. 当达到重置URL时,将密钥存储在cookie中并立即重定向,以使其不在引用者的任何位置。 cookie应该在浏览器关闭时到期,并且应该在重置密码时明确删除。
  2. 我为我的服务重置了3个小时,我认为即便这样也是太多了。 30分钟甚至没问题。
  3. 重置密码链接并非完全不安全。如果您的服务持有任何类型的信用卡数据,货币兑换或个人信息,您还应考虑包括一些质询问题。

答案 2 :(得分:0)

据我了解,两者都是必要的,否则会造成很多严重的安全问题。通常对我来说,我只保持4个小时。

相关问题