mod_security 规则通过查询字符串或 referer 阻止 GET 请求

mod_security 规则通过查询字符串或 referer 阻止 GET 请求

最近几天,我的 VPS 中对 1 个文件发出了许多 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)以防止/减少内存负载吗?

到目前为止我已经将此规则设置为 mod_secuurity(但我不确定是否正确):

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

PS:我的VPS是linux,安装的是apache2.2

编辑:我的整个网站强制使用 HTTPS,不确定是否应该添加一些内容

答案1

我测试了你的规则并且它似乎有效。

您还可以使用 curl 进行测试,如下所示:

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

相关内容