![]() |
2
39
我不会这样做——在我看来,这些问题会削弱安全性,所以作为一个用户,我总是试图提供另一个半密码作为答案——对于您来说,它就像是混在一起。嗯,它是捣碎的,但这正是我想做的。 顺便说一句,我不确定你是否可以查询答案。因为它们克服了您的密码保护,所以应该像密码=存储为哈希一样处理它们!
编辑:
|
![]() |
3
12
安全问题的整个方法都有很大的缺陷。
我总能找到
人们的安全答案比他们使用的密码弱
.
在我看来,最好的办法是 允许用户请求发送到其注册电子邮件ID的新密码 . 这有两个优点。
如果您必须有秘密问题,让他们触发一个重新生成的(不要发送用户的密码,重新生成一个临时的,最好是一次性强制的)密码发送到他们注册的电子邮件ID——并且,不要显示这一点。
另一个技巧是
使机密问题本身成为其注册的电子邮件ID
.
|
![]() |
4
6
用正则表达式是不可能做到这一点的。实际上,我想不出一个合理的方法来做到这一点——你会在哪里划出可疑和不可疑的界限?我常常用一个模糊的答案回答安全问题。毕竟,我母亲的娘家姓不是最难知道的。 |
![]() |
5
4
如果你能找到一个英文字母对概率列表,你可以用不在列表中的最不可能的对和对构造一个非“真”英文单词的近似概率。不幸的是,如果你有名字或其他“非单词”,那么你不能强迫他们成为英语单词。 |
![]() |
6
4
也许你可以检查一下辅音是否丰富。例如,在您的示例中
|
![]() |
7
3
Dejunk 是一个红宝石库,你可以从中获得灵感。它在其他答案中实现了一些建议。如果输入:
|
![]() |
8
2
你可以在一开始就查一个大写字母…这肯定会给你带来一些误报。 一个快速的谷歌给了我 this ,您可以将每个名称与该列表中的名称进行比较。 显然,只适用于你所说的安全问题。 您是否也看到了: 下次执行安全问题时,我会认真考虑。 |
![]() |
9
2
如果你的问题涉及到一个真实的人名,这是不可能的。考虑一下用罗马字符输入的亚洲名称;它们可能会很好地过滤掉你提出的任何过滤器,但仍然是完全合法的。 |
![]() |
10
0
你可以寻找语音上没有意义的模式。例如: “q”后面不是“u”。 阿斯达夫 QWER ZXCV ASDLASD 基本上,尝试在你自己的键盘上混搭,看看你得到了什么,然后把它插入你的过滤器。还可以插入各种语法规则。但是,因为你要处理的是名字,你总是会得到一个奇怪的名字,这个名字会导致假阳性。 |
![]() |
11
0
与正则表达式不同,为什么不直接与已知良好值的列表进行比较呢?例如,将母亲的婚前姓与人口普查数据进行比较,或者将宠物名与您可以在网上找到的任何宠物名列表进行比较。对于更简单的版本,只需在谷歌上搜索输入的内容。合法名称应该有大量的结果,而键盘混搭应该会导致很少的结果(如果有的话)。 和其他方法一样,您仍然需要处理误报。 |