例如,如果用户fred123
在过去X
分钟内登录Y
次失败,那么我会阻止fred123
尝试登录一段时间时间但在那段时间内,其他用户不会被阻止登录。这还不够好吗?
似乎它会起作用,因为一个暴力破坏者只能尝试每个用户名X
次。我会将X
和Y
设置为较低的数字 - 可能都小于10。
答案 0 :(得分:1)
您假设强力登录始终以相同的用户名为目标并尝试使用不同的密码。如果这是真的,那就没关系了。
但是,假设攻击者有一个来自您服务器的用户名列表,他们可以尝试使用明显的密码,例如“密码”,并逐步浏览每个用户以查看是否有人在使用它。这将完全绕过你的攻击可能发生的理论。
更好的系统是记录传入用户的IP地址,并计算在已知时间段内从该IP发生的失败尝试次数。如果超过一定数量,则阻止该IP尝试一段时间。如果是其他人试图使用他们的用户名登录,那么这样做对用户的干扰就会减少。
Linux有一个名为fail2ban的类似系统,它为尝试登录服务器的人采用这种方法。
您还应该尝试考虑您的网站的功能以及如何危及安全性。
答案 1 :(得分:0)
这是一个开始,但如果你对失败的登录尝试感到偏执,那么我也会限制ip地址。
如果你真的非常偏执,我会扼杀全球失败的尝试,并增加每次尝试的锁定时间,内部让我们说10分钟的窗口