2012-02-12 117 views
1

我创建了一个登录系统,并且想要阻止尝试登录几分钟的用户输入错误的用户名和密码让我们说4次。有限的登录尝试

我知道如何在IP上阻止它,但这会为例如创建块。整个学校,如果我在那里。 现在我可以使用该用户输入的用户名来阻止访问,但这会导致输入的用户名不存在于数据库中。

我的问题是: 如何为输入不存在用户名的用户创建该块。 我需要什么样的数据库表。

此外,我已经寻找使用会话和cookie的可能性,但这留下了人们可以创建删除会话和cookie的软件的安全问题。

所以,如果任何人都可以帮助我,我将不胜感激。

+1

我会说,去找一个99%有效的解决方案。你说得对,阻止IP地址不是一个好主意,因为这可能会阻止大量用户;另外如果有人想要他们可以欺骗他们的IP地址。仅当有人试图猜测特定用户的密码时,用户名阻止才有效;会话/ cookie可以被最终用户轻松删除。我建议使用几种方法的组合:在N次登录尝试失败后锁定用户名,将会话用于用户允许使用的任何程度,并可能在大量尝试后阻止IP地址。 – 2012-02-12 17:40:39

回答

2

我相信你试图摆脱暴力攻击,而不是一个可怜的丈夫忘记了他的用户名。

实现一个困难的CAPTCHA机制,所以你可以防止大部分的自动攻击。同时保持来自特定IP地址的尝试次数以及这些连续尝试之间的时间间隔。如果任何攻击设法解决您的验证码,您仍然可以在几分钟内检测到异常活动并阻止访问整个IP。它可能会使整个组织脱机一段时间,但至少可以帮助他们免于因严重攻击而遭遇停电。

会话和cookie不会帮助,因为大多数蛮力系统都会清除并为每个请求生成一个新的cookie。

+0

提示的问题。 我会研究它。 似乎像这个问题的一个很好的解决方案:) – Controvi 2012-02-12 17:58:57

+0

很高兴成为帮助! – Nirmal 2012-02-12 18:11:29