从Apache强加访问限制以防止刮擦?

时间:2010-03-10 09:37:18

标签: php apache screen-scraping limit

问题在于内容网站被严重破坏,以至于它破坏了服务器。

是否有一种简单的方法可以在每次或每天将IP访问限制为固定数量的请求? (10页/天或......每2分钟10页)

理想情况下,我会为搜索引擎保留一个通配符列表,并禁止其他人访问内容过快或过多。

谢谢你们!

3 个答案:

答案 0 :(得分:4)

解决此问题的一种方法是使用IPTABLES(仅限Linux)来防止单个IP启动超过指定数量的连接。这是试验和错误,因为你需要正确计算它,但总的来说,这应该可以防止攻击者的连接率

iptables -A INPUT -p TCP --dport 80 -m state --state NEW -j STOP-ABUSE
iptables -A STOP-ABUSE -m recent --set
iptables -A STOP-ABUSE -m recent --update --seconds 10 --hitcount 3 -j DROP

希望有所帮助

答案 1 :(得分:1)

我更愿意在系统级别使用iptables ...


但是,如果您正在寻找基于Apache的解决方案,可能需要使用mod_security

SecGuardianLog配置指令看起来特别有趣,在您的情况下(引用)

  

描述:配置指令   使用httpd-guardian脚本来   监控拒绝服务(DoS)   攻击。

     

默认情况下,httpd-guardian会辩护   针对发送超过的客户   一分钟内或120分以上的120个请求   在五分钟内提出360次请求。

答案 2 :(得分:0)

您可以安装mod_bandwidth和mod_limitipconn等模块来限制带宽使用(全局和每个连接)。

查看http://mansurovs.com/tech/apache-bandwidth-throttling了解详情。