mod_security规则通过querystring或referer来阻止GET请求

在我的VPS的最后几天,在一个文件上有很多GET请求,导致高内存负载(全部来自一个引用URL,具有不同的IP)。

直到现在我已经通过.htaccess阻止了这些请求

# by refurl RewriteCond %{HTTP_REFERER} domain\.com [NC] RewriteRule .* - [F] # by querystring RewriteCond %{QUERY_STRING} \ba=ZicX9v\b [NC] RewriteRule ^ - [F] 

但是这样的请求仍然由apache处理,并且仍然导致很高的内存负载。

我可以用mod_security(也许在阶段1)阻止这个请求来防止/减less内存负载吗?

到现在为止,我已经把这个规则设置为mod_secuurity(但是我不确定是正确的):

 SecRule REQUEST_HEADERS:REFERER "(?i:(THEDOMAIN))" phase:1,deny,status:412,id:'1234' 

PS:我的VPS是linux和apache2.2

编辑:我的整个网站强制HTTPS,不知道如果我应该添加一些东西

我testing了你的规则,它似乎工作。

你也可以用curl来testing,就像这样:

 curl --referer https://bad-referer-domain.com https://your-site.com