如果从IP地址进行了太多的登录尝试,那么锁定IP地址是一种好做法吗?



因为IP地址不一定代表一个特定的设备,但可能代表整个网络/公司等。如果有大量的错误登录尝试,那么锁定IP地址是否有意义?

我计划实现IP检查以及对特定用户/帐户/电子邮件的尝试,但我不确定是否因此完全离开IP检查更好。

这将允许攻击者为每个用户尝试特定数量的密码而不会被禁止(同时阻止这些用户能够锁定,因为他们的帐户将被锁定一段时间)。

防止这种事情发生的正确方法是什么?

(Btw:我使用PHP/MySQL,但这并不重要,因为只是正确的方式来做它是需要的)

禁止一个IP,至少在我看来,是与"良好实践"完全相反的。在一些国家,你的IP每24小时就会改变一次,所以如果你今天禁止了一个IP,明天就会有一个完全不同的人获得那个被禁止的IP。

您可以(并且应该)做的是在提供假密码后强制等待时间。作为一个例子,你可以看看AVM Fritz!Box的web界面。

You provide a wrong password -> 2 seconds wait
You provide another wrong password -> 4(?) seconds wait
You provide another wrong password -> 6(?) seconds wait
...

(请注意通常是Fritz!)Box只有一个密码字段,没有用户名/UID。这在较新的版本中是可配置的。对于完整的用户/密码认证,一旦提交了错误的登录,就需要应用"等待时间"。无论用户名或密码或两者都是错误的)

这样一来,那些试图强行进入你的web服务的人还有很长的路要走,而普通用户则不会被打扰。

最新更新