防止密码提示正确输入密码

Sha*_*men 3 security passwords algorithm

我正在实现密码+密码提示代码我想要阻止用户提示密码提示立即显示实际密码.

以下是我想要阻止的方案:

让我们说密码是:foob​​ar123

然后密码提示不能是:

  • "foobar123"
  • "密码是:foobar123"
  • "foobar-1-2-3"(或任何其他x len分隔符)
  • "f00bar123"(用零替换o)

几个问题:

  1. 我对此过火了吗?我应该让用户为不知不觉的安全付出代价吗?
  2. 我是否错过了一个我需要预防的明显场景?
  3. 可以使用正则表达式评估每个方案吗?这是我能想到的最可扩展的添加未来检查的方法.

tva*_*son 6

我只是给用户一组固定的问题供他们选择,他们提供了答案.通过这种方式,您永远不会公开用户输入值,只会显示用户从预先选择的预选列表中选择的值.这样可以完全避免您的问题.

或者,如果您拥有用户的电子邮件地址,则只需重置密码即可发送带有编码密钥的链接,该密钥允许一次性更改密码.这样您就不需要提供提示,只需更改密码以响应其中一个一次性票证.

  • 呃,我讨厌*当网站给出一套预先选择的时候.他们不可避免地会有一些问题,比如"你上过什么高中"或"你的宠物的名字是什么",这些问题可以用两分钟的谷歌搜索来回答. (8认同)
  • @John和bob - 我通常回答一些对我的现实生活来说不真实的东西,但很容易记住,例如虚构人物的生活.例如"你参加了什么高中" - "Hogwartz高中"(因为字典攻击不起作用而受损)."你宠物的名字是什么" - "Hedwigz".只要你破坏答案,你就干净了.如果你从不太知名/流行的领域中选择asnwers更好,我主要是为了普遍认可而做了这些而不是答案中的可用性:) (2认同)