【问题标题】:Best password reset behavior for missing account丢失帐户的最佳密码重置行为
【发布时间】:2012-04-22 05:10:29
【问题描述】:

我想知道当用户请求为不存在的电子邮件重置密码时,最佳行为是什么。

上下文:用户未登录。他们只是输入电子邮件并点击重置按钮。

  1. 如果我立即告诉请求重置的用户该帐户不存在,这既是一个安全漏洞,也是一个隐私问题。
  2. 如果我什么都不做,这是一个无辜的错误(他们认为他们有一个帐户),他们会想知道到底发生了什么。最神秘的选择,最不容易被滥用。
  3. 我可以发送一封电子邮件,说明已请求重置密码但没有帐户(应该忽略等等等等)。这似乎是最不有害的,但它有点容易被滥用。

更新:进一步考虑,我真的不认为 1 有什么大不了的,因为他们只需尝试注册/使用即可获得相同的信息同一封电子邮件……除非我遗漏了什么……

【问题讨论】:

    标签: passwords forgot-password


    【解决方案1】:

    我会做这样的事情

    • 询问用户名或电子邮件
    • 如果存在该电子邮件或用户名,请将所有电子邮件连同重置密码一起发送给此人。

    完成:)

    【讨论】:

      【解决方案2】:

      我个人会这样:

      1. 用户输入电子邮件地址。
      2. 屏幕显示“请求将被处理,电子邮件已发送”或类似内容。
      3. 如果没有与此电子邮件地址关联的帐户:不要发送邮件,但不要告诉请求的人。
      4. 如果有与此电子邮件相关联的帐户:发送重置电子邮件,包括通常的“如果这不是您直接忽略此邮件,如果您怀疑滥用,请联系 $foobar”-消息。李>

      这就是为什么我不会告诉任何人帐户是否与此电子邮件地址相关联的原因:隐私。如果你告诉所有人,每个人都可以检查 $person 是否在使用 $service。

      我想我会包括为什么如果没有这样的用户我不会发送邮件:我为什么要发送邮件?用户可能要么知道他使用了哪个电子邮件地址,要么一次尝试多个(或只等待很短的时间跨度)。当然,在某些情况下,如果发送这些邮件会更加用户友好,但它们的重要性不足以消除滥用的可能性。 如果只有一个网站做这些事情(只要他们不会在短时间内发送多封邮件),那么就没有太多滥用的可能性,但想象一下每个 Web 服务都会这样。您只需要收集其中一些服务,然后通过电子邮件轰炸“您”不喜欢的人,而无需点击任何垃圾邮件过滤器!

      【讨论】:

        【解决方案3】:

        在我看来,第三个选项是用户友好性和安全性之间的最佳折衷方案。选项 1 似乎是一个很大的隐私问题。使用选项 2,用户无法知道他是否有帐户,但使用另一个电子邮件地址注册,或者重置系统是否不起作用。

        【讨论】:

          【解决方案4】:

          就个人而言,我很喜欢:

          • 用户输入电子邮件。
          • 无论电子邮件是否存在,都说它已被请求,如果您很快没有收到电子邮件,请重试或联系我们。
          • 在电子邮件中,说明已提交密码请求,如果不是用户,则忽略该电子邮件。

          还有,

          • 如果您担心机器人会在您的网站上抓取电子邮件,请添加验证码。
          • 如果您担心有人入侵帐户,请添加第二层以提示您提供秘密问题答案。

          【讨论】:

            猜你喜欢
            • 2013-08-26
            • 2020-01-31
            • 2018-04-13
            • 1970-01-01
            • 1970-01-01
            • 2019-01-29
            • 2010-11-29
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多