1

目的是防止(尽可能)暴力攻击。

一种解决方案 php sleep(),但读取它使用大量服务器资源(例如,这里http://bytes.com/topic/php/answers/745681-how-does-sleep-work)。

其他解决方案,在 mysql 中记录登录次数,在第 2 次或第 3 次登录失败后,回显和验证验证码,在 5-6 次登录失败后设置一些时间限制(如何在没有 sleep() 的情况下进行操作)......等等。问题是:这样做方法会使用更少的系统资源吗?

请就一些防止暴力攻击的好方法提出建议......可能是在一定次数的登录尝试失败后重定向到某个地方,或者显示一些不同的内容......?

4

1 回答 1

1

您的问题"Prevention against bruteforce"极具争议性和技术性。
我同意sleep()用于预防暴力破解根本不是一个好的选择。但是针对暴力破解的防弹保护是不可能的。是的,我们能做的就是让它尽可能地难。

我的算法
1)3 次登录尝试。如果用户登录正常,否则第 2 步。第一个问题是第一步。在进一步导航之前,您必须记录所有尝试并对其进行计数。与第 2 步相同。

2) 3 个验证码验证。如果用户登录正常,否则步骤 3。

3)在阻止列表中添加用户名并在特定时间限制后将其删除。当然,这种添加和删除它会使用一些额外的资源,并且在实现方面肯定会增加一些复杂性。

4) 每当任何用户尝试登录时,首先检查该用户名是否在阻止列表中。如果不在阻止列表中,则执行第 1 步。如果在阻止列表中,则显示一条消息。

但是,让我明确一点,为了建立一个真正能够抵抗暴力破解的系统,你必须研究关于暴力破解的细节和操作方法。它不是小菜一碟。不要指望在 SO 或其他任何地方得到完整的答案。

我还想从其他人那里了解他们的想法。

于 2013-02-16T14:08:34.780 回答