允许用户更改密码的模式。用户是不是必须重复新密码以及输入旧密码?

Posted

技术标签:

【中文标题】允许用户更改密码的模式。用户是不是必须重复新密码以及输入旧密码?【英文标题】:Pattern for allowing a user to change his password. Should the user have to repeat the new password as well as enter the old password?允许用户更改密码的模式。用户是否必须重复新密码以及输入旧密码? 【发布时间】:2011-10-01 16:26:03 【问题描述】:

有很多关于在 SO 上恢复密码的问题,但不是关于更改密码的问题,请考虑以下两种情况之一:

1) 用户已经在系统中进行了身份验证(通过用户/密码或第三方身份验证,例如 facebook/twitter) 2) 用户知道他或她的旧密码。

鉴于这些起点,我有两个不同的问题,即允许用户以最少的步骤更改其密码的最佳做法是什么。

场景(用户已经通过身份验证并登录系统): 输入旧密码:_______(1:我可以去掉这个) 输入新密码:_______ 再次输入新的:_______(2:我可以摆脱这个)

1) 可以不让用户输入他的旧密码吗?在这种情况下,我假设用户已经通过系统身份验证。让用户重新输入密码似乎是多余的。我知道这对于高安全性应用程序(例如银行)可能很重要,其中用户离开会话无人看管可能允许某人输入新密码而不知道使他们进入这种情况的密码。

在我展示的示例中,应用程序的安全性不是很高,风险也很低。此外,由于我们允许第三方身份验证(facebook/twitter),那么理论上如果其他人在机器上并且用户拥有 facebook/twitter 的实时 cookie,他们就可以进入该帐户。

2) 不让用户输入两次新密码可以吗?这样做感觉有点像 90 年代。人们现在已经习惯了密码,他们输入密码与预期不同的 5% 的可能性似乎并没有超过输入两次密码所花费的时间。在这 5% 的情况下,最坏的情况是他们只需要重置密码(或者只需使用 facebook/twitter 登录并重置密码)。我现在发现这样做的一个网站是 Quora(尽管他们仍然执行第 1 步)。我还没有看到很多其他人这样做。

【问题讨论】:

【参考方案1】:

让他们输入旧密码的一个很好的理由是合法用户起身去洗手间,而恶作剧者决定更改他们的密码。

我个人不介意输入两次新密码。也许有些人会这样做。

您当然可以选择消除其中一个或两个步骤,它可能不会让您太头疼。但它可能会。

IMO 消除这种用户名/密码垃圾的更好方法是做 SO 所做的,并使用 OpenID 或其他替代身份验证方法,如 X509 证书。

【讨论】:

现在我们只允许通过第三方登录(即没有用户/密码),但我们有几个人没有注册,因为他们不想绑定个人 twitter/facebook 帐户他们在我们系统中的“企业”帐户。 那里说您的客户不认为您的应用“安全性不是很高”。 不,这意味着他们不想使用个人 facebook/twitter 登录与业务相关的内容。它与安全无关,它与他们想要使用他们为网站选择的用户/密码有关。这是他们给出的明确反馈。【参考方案2】:

据我了解,输入旧密码的必要性是为了防止在用户不小心离开登录并离开帐户的情况下帐户被劫持。是的,在这些情况下,劫机者(通常是某人的朋友注意到他们在 Facebook 上的登录状态)会发布一些愚蠢或令人反感的东西,但至少,如果没有原始密码,他们就无法有效锁定原始用户。

在第二种情况下,我认为要求用户再次输入密码并不太合适;对于好的密码,它们应该相对复杂,因此有点难以输入。要求第二个条目有点麻烦,但不是太不合理(IMO)。

【讨论】:

【参考方案3】:

首先,我要告诫您,永远,永远,永远,永远,永远假设用户就是他所说的那个人,尤其是在更改允许他们访问其帐户的密钥时。始终需要密码验证来编辑密码是一种非常常用的方法。

至于输入两次密码,这主要是在后端完成,因此您可以比较两个密码并确保它们相同。这样做是为了确保用户在输入密码时打算输入密码。连续两次输入同一个错字的可能性不大,因此如果两个密码相同,您可以很好地假设它们没有错字。

就我个人而言,我宁愿每天花 10 秒时间重新输入密码,而不必费力地意识到我输入了密码,然后不得不重设密码、访问我的电子邮件、重新访问网站,然后重新输入我的密码。在一天结束时,您仍然需要输入两次,第一种方法更加精简。

而且我绝不会允许用户编辑身份验证方法,除非他们首先验证使用身份验证方法的能力。一些用户在离开座位时让他们的计算机保持登录状态,这允许其他人坐下来访问私人数据,如果他们可以更改密码而无需输入当前密码,则可以更容易地打开帐户被滥用。

【讨论】:

【参考方案4】:

大约 1)。我不会信任在尝试更改旧密码时不询问我的旧密码的应用程序,我更喜欢偶尔输入旧密码的麻烦,而不是有人在我没有注意到的情况下更改它的风险,没关系如果它是我的银行帐户或只是我的杂货清单,对我来说。

2) 我有好几次需要重复输入您的密码,这很容易输入密码的次要变体,并且可能非常有害,将您锁定在您的帐户之外。

您应该考虑到,用户不会经常更改密码,所以麻烦得到了回报,我会保留询问您最后一个密码并要求您输入两次新密码的旧公式。

【讨论】:

以上是关于允许用户更改密码的模式。用户是不是必须重复新密码以及输入旧密码?的主要内容,如果未能解决你的问题,请参考以下文章

忘记密码怎么办?

2008AD域用户密码更改

xp系统的电脑中administrator密码忘记了怎么办?

密码更改解析快速

根据 Active Directory 策略检查密码 [重复]

win10子系统ubuntu忘记密码解决方案