检测页面是否被请求超过指定的编号。 时间由相同的IP和阻止IP

我试图检测不良的机器人活动。 如果在robots.txt中不允许使用但是对普通用户开放的information.php more than 500 times in a day by same IP address请求more than 500 times in a day by same IP address ,那么我认为可以安全地将用户标记为bot 。

另外,如果我从IP地址获得more than 100 bad login requests ,我想将其标记为bot活动。 (尽pipe我认为在1次错误的login尝试后向用户提供validation码会更好,但基于IP的解决scheme比基于会话cookie的解决schemeIMO实现起来有点困难)

最后,我想阻止已标记为机器人活动的IP。 我怎么去做这一切?

你应该看看fail2ban ,它parsing日志文件(比如apache,ssh等等),然后决定(通过iptables阻塞一段时间)给可疑的用户。

你可以select的是使用一个基于主机的入侵检测系统,它可以parsing日志并在一段时间内自动阻止一个账户。 例子是Fail2ban和OSSEC。

此外,OSSEC采用服务器客户机模式,因此如果您拥有多个webserveR,则可以使用集中式模式,以提高可pipe理性。

我必须在几天前实施相同的解决scheme,而fail2ban是这项任务的正确工具。 有很好的方法: Fail2ban保护Web服务器HTTP DOS攻击

只要修改你的情况下的failregex

这听起来像你想要mod_security 。 mod_security允​​许您使用或编写强大的规则来检测并响应您的Web服务器上的活动。

这是非常强大的,而且应该适合你的大部分需求,没有太多的麻烦。

它也被广泛使用,所以得到帮助应该很容易。

http://www.modsecurity.org/projects/modsecurity/