1

例如,如果用户在最后几分钟内fred123登录失败,那么我会阻止在一段时间内尝试登录。但是在这段时间内,其他用户不会被阻止登录。这样就够了吗?XYfred123

似乎它会起作用,因为暴力破解者只能尝试每个用户名X时间。我会设置X和设置Y低数字 - 可能都小于 10。

4

2 回答 2

1

您假设暴力登录总是针对相同的用户名并尝试不同的密码。如果那是真的,那就没问题了。

但是,假设攻击者拥有来自您服务器的用户名列表,他们可以尝试使用明显的密码,例如“密码”,然后逐步检查每个用户以查看是否有人在使用它。这将完全绕过您关于攻击如何发生的理论。

更好的系统是记录传入用户的 IP 地址,并计算在已知时间段内从该 IP 发生的失败尝试次数。如果超过一定数量,则在一段时间内阻止来自该 IP 的尝试。如果其他人尝试使用他们的用户名登录,这样做对您的用户的破坏性较小。

Linux 有一个类似的系统,称为fail2ban,它为尝试登录服务器的人采用这种方法。

您还应该做的是尝试考虑您的网站的功能以及您将如何损害安全性。

于 2013-10-24T10:03:20.947 回答
0

这是一个开始,但如果您对登录尝试失败感到偏执,那么我也会限制 IP 地址。

如果你真的很偏执,我会限制全局失败的尝试,并增加每次尝试的锁定持续时间,里面让我们说一个 10 分钟的窗口

于 2013-10-24T06:05:06.257 回答