2016-11-23 57 views
0

我實現以下登錄系統:允許用戶登錄,即使密碼稍微偏離

如果密碼是稍有不同(例如一個字符應爲大寫但是小寫)用戶可以登錄,如果以下幾點是值得尊重的:

  • 登錄IP應該與之前用戶以前登錄的IP匹配。
  • 輸入的密碼之間的差異應該是最小的,因此它不允許用戶登錄,如果它包含超過2/3差異。
  • 可選 - 記錄用戶記下密碼並確保用戶沒有花太長時間的時間。

您對這種系統的安全性有何看法?

+0

這可能應該移到http://security.stackexchange.com/ – bartonjs

回答

1

不要這麼做

除非這個登錄腳本只不過是一個玩具,並且將再也看不到生產環境的光,不這樣做。爭辯你的觀點,原因如下:

  1. IP變化。即使你的用戶有一個靜態的IP地址,IP地址也可能被欺騙
  2. 你是如何計算這些差異的?字符串比較?您不應該將密碼存儲爲純文本。哈希比較應該是確切的,沒有擺動空間。
  3. 如果我在登錄時離開電腦,該怎麼辦?如果用戶一下子忘了該怎麼辦?如果用戶打字真的很糟糕,或者身體殘疾並需要花時間怎麼辦?這裏變量太多,登錄機制變得不必要的複雜,沒有真正的回報。如果有的話,一個「太快」的限制可能會更聰明,以減緩暴力破解密碼。