Php 从Apache设置访问限制以防止刮取?

Php 从Apache设置访问限制以防止刮取?,php,apache,screen-scraping,limit,Php,Apache,Screen Scraping,Limit,问题是一个内容网站被刮得太厉害以至于服务器崩溃 是否有一种简单的方法将IP的访问限制为每次或每天固定数量的请求?(每天10页或每2分钟10页) 理想情况下,我会为搜索引擎保留一个通配符列表,并禁止其他人访问内容过快或过多 谢谢大家 解决这个问题的一种方法是使用IPTABLES(仅限linux)来防止单个IP启动超过指定数量的连接。这是反复试验,因为您需要正确计算,但总的来说,这应该可以防止攻击者的连接速率 iptables -A INPUT -p TCP --dport 80 -m state

问题是一个内容网站被刮得太厉害以至于服务器崩溃

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

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


谢谢大家

解决这个问题的一种方法是使用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

希望它有助于解决这个问题,一种方法是使用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

希望它有帮助

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


查看更多信息。

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


查看更多信息。

我更愿意在系统级使用iptables来完成这项工作


但是,如果您正在寻找基于Apache的解决方案,可以考虑使用

在您的案例中,配置指令看起来特别有趣(引用):

描述:配置指令 要使用httpd guardian脚本 监视拒绝服务(DoS) 攻击

默认情况下,httpd guardian将进行防御 针对发送超过 一分钟内有120个请求,或超过 五分钟内有360个请求


我更愿意在系统级使用iptables来实现这一点


但是,如果您正在寻找基于Apache的解决方案,可以考虑使用

在您的案例中,配置指令看起来特别有趣(引用):

描述:配置指令 要使用httpd guardian脚本 监视拒绝服务(DoS) 攻击

默认情况下,httpd guardian将进行防御 针对发送超过 一分钟内有120个请求,或超过 五分钟内有360个请求


谢谢,伙计们。这是关于请求的讨论。每个jpg/css/js/html都会发出一个新的请求。这意味着我将不得不在步骤1中计算出每页的平均请求数。第二步是在给定的时间范围内平均一个普通用户对网站的使用率。考虑到这个数字(看起来是每小时800个请求),我会通过iptables/mod_security或其他方法应用这些限制?谢谢伙计们:这里有关于请求的讨论。每个jpg/css/js/html都会发出一个新的请求。这意味着我将不得不在步骤1中计算出每页的平均请求数。第二步是在给定的时间范围内平均一个普通用户对网站的使用率。考虑到这个数字(看起来是每小时800个请求),我会通过iptables/mod_security或其他方法应用这些限制?