2016-11-23 61 views
0

我实现以下登录系统:允许用户登录,即使密码稍微偏离

如果密码是稍有不同(例如一个字符应为大写但是小写)用户可以登录,如果以下几点是值得尊重的:

  • 登录IP应该与之前用户以前登录的IP匹配。
  • 输入的密码之间的差异应该是最小的,因此它不允许用户登录,如果它包含超过2/3差异。
  • 可选 - 记录用户记下密码并确保用户没有花太长时间的时间。

您对这种系统的安全性有何看法?

+0

这可能应该移到http://security.stackexchange.com/ – bartonjs

回答

1

不要这么做

除非这个登录脚本只不过是一个玩具,并且将再也看不到生产环境的光,不这样做。争辩你的观点,原因如下:

  1. IP变化。即使你的用户有一个静态的IP地址,IP地址也可能被欺骗
  2. 你是如何计算这些差异的?字符串比较?您不应该将密码存储为纯文本。哈希比较应该是确切的,没有摆动空间。
  3. 如果我在登录时离开电脑,该怎么办?如果用户一下子忘了该怎么办?如果用户打字真的很糟糕,或者身体残疾并需要花时间怎么办?这里变量太多,登录机制变得不必要的复杂,没有真正的回报。如果有的话,一个“太快”的限制可能会更聪明,以减缓暴力破解密码。