我正在使用私有访问在PHP中构建应用程序 . 登录有两种方法:
-
登录表单:用户名和密码
-
Cookie:记住带有散列信息的cookie(用户名,盐等)
为了防止机器人进行暴力攻击,服务器会创建一个会话(带有session_start的cookie),在4次尝试之后,用户必须等待5秒才能再次尝试 . 我正在使用超全局变量$ _SESSION来检查某人尝试连接的次数 .
我担心的是不允许使用cookie的用户 . 在这种情况下,他们不必每4次尝试等待5秒 . 关于防止蛮力的最佳方法,我有点困惑:
-
在数据库中创建一个登录表,用于检查IP尝试连接的次数
-
或者只是阻止没有会话cookie的用户连接
谢谢,
2 回答
你可以看看http://www.codedevelopr.com/articles/throttle-user-login-attempts-in-php/并自己判断 .
我肯定会选择基于数据库的解决方案 . 也许在5次尝试失败后锁定帐户2分钟,但这实际上只是个人决定..但是,您可能不想阻止IP,因为许多大公司甚至国家使用一个NAT的IP进行通信,而不是我锁定帐户 .