记录php登录系统中的记录尝试次数

时间:2015-05-31 06:12:59

标签: php mysql login

我正在修改已经构建的登录系统以满足我的需要。我已经看到有一个特殊的MySQL数据库表用于记录用户登录的尝试次数。如果用户试图尝试5次但没有成功,则该用户将被搁置一段特定的时间。

我的问题是,它有多重要?如果我们想阻止脚本进行自动登录尝试,是不是在Web服务器或防火墙级别处理?

2 个答案:

答案 0 :(得分:0)

我认为共享服务器可以管理暴力攻击。但这并不意味着你应该粗心大意,也不值得。您必须停止对可疑用户的请求,以避免消耗服务器的资源。

现在,您可以通过Sessions($_SESSION)作为第一级安全性处理此问题,然后记录数据库中的尝试以进行进一步检查。例如,您可以跟踪用户有多次失败尝试,然后可能会被视为可能的安全威胁,因为他/她与可能有一次五次登录失败的普通用户不同。

毕竟,不仅有必要,而且对于健康的系统而言,拥有多层登录安全性也非常重要,您可能还有:

客户端(在提交时禁用输入,CAPTCHA等) 服务器端($_SESSION,数据库,服务器Firewarll等)

答案 1 :(得分:0)

这个问题不在话题。要回答它,我会使用评论框,但这太长了..

cphulk是您可能拥有的cpanel服务器上的服务。它不会监视您的个人脚本的登录(即:Wordpress)。它监视您登录服务器上运行的服务,例如cpanel login,whm login,ssh,email(即:smtp)和其他进程。

绝对有必要阻止任何中等网站的脚本级别的暴力尝试。如果它是您自己的个人小登录页面,没什么大不了的。如果你有成千上万的成员,那么你会想要的。如果你的处理金钱,或任何引起安全担忧的事情,是的。如果您有表单允许用户上传到服务器,是的。在大多数情况下,是的,你应该这样做。

只需跟踪用户名/电子邮件以及尝试的次数是否足够。机器人使用代理并旋转用户名/电子邮件。他们可能会使用10k用户名列表,并且只能尝试10个密码。即:每个帐户10次尝试失败,在雷达下飞行,以及数千个代理。

最好的方法是通过IP地址的太多尝试来保护这两种方式(无论用户名是否尝试过),以及每个帐户的尝试次数过多。

如果IP尝试登录>在过去的60分钟内有10个账户,阻止他们持续x分钟/小时。

如果IP已经>在过去的15分钟内无法登录10次(无论是否有帐号),请将其阻止15分钟。

如果某个帐户在过去15分钟内登录失败超过10次,请将其锁定15分钟。

为您的IP阻止记录保留另一个表。如果他们在过去24小时内被阻止超过3次,则阻止IP 24小时。

你可以向上移动,重复拦截器,提醒你检查它,这样你就可以将IP列入黑名单。

只是一些想法,根据您的需要调整方法/动作/时间。