php sleep()或记录失败的登录尝试次数?

时间:2013-02-16 13:48:53

标签: php

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

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

其他解决方案,记录mysql中的登录次数,第二次或第三次登录失败后,回显并验证验证码,5-6次登录失败后设置一些时间限制(如何不用睡眠())...等问题是:这种方法会使用更少的系统资源吗?

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

1 个答案:

答案 0 :(得分:0)

您的问题"Prevention against bruteforce"极具争议性和技术性 我同意使用sleep()预防暴力不是一个好的选择。但是不可能使用防弹力来防止暴力。是的,我们能做的就是尽可能地努力。

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

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

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

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

但是,让我保持原始状态,为了建立一个能够 真的 抵制暴力的系统,你将不得不研究细节和方法关于暴力。它不是小菜一碟。不要期望在SO或其他任何地方获得完整的答案。

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