这个问题本质上与语言无关,但就我而言,我正在为任何想知道的人使用PHP 。
我想跟踪用户登录尝试失败的次数,以便在X
尝试失败后显示验证码。这样做的唯一目的是防止暴力攻击。它不一定是一种非常安全的方式,只要够烦人就可以延迟任何暴力破解的人。
我正在考虑创建一个会话变量$_SESSION['failedLoginAttempts']
,并在每次检测到失败的登录尝试时增加它。攻击者仍然可以更换浏览器或删除他的 cookie 以继续进行,但这会使他(即他用来执行暴力破解的任何工具)每次尝试多浪费几秒钟,因此尝试次数会大大增加降低。
从每秒几次攻击到每分钟两次攻击将是理想的,那么攻击将可以忽略不计。
这种方法是正确的还是我错过了什么?另外,在这些情况下,最佳做法是什么?