我管理的服务器正受到一个由 AWS 构建的、编码糟糕的机器人的攻击,该机器人不断切换 IP,似乎陷入了递归编码循环。我能看到的唯一一致指纹是每个请求都只是一个请求HEAD
,每个请求似乎都会重新编码前一个请求。所以http://someurl.com/?foo=%25bar
变成..%2525..
了..%252525..
……%2525252525252525...x1000
以下是我所看到的请求类型的示例:
HEAD http://example.com/?foo=%25bar
HEAD http://example.com/?foo=%2525bar
HEAD http://example.com/?foo=%252525bar
HEAD http://example.com/?foo=%25252525bar
HEAD http://example.com/?foo=%2525252525bar
HEAD http://example.com/?foo=%2525252525...25bar (x1000)
到目前为止,我一直在使用 Cloudflare 防火墙来阻止每个 IP,但它们不断切换 IP。
我怎样才能简单地阻止所有包含子字符串(比如%25252525
)的 HEAD 请求?
我在跑Apache/2.4.6 (CentOS)
。
答案1
在你的.htaccess 中使用 mod_rewrite 怎么样?
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_METHOD} HEAD
RewriteCond %{QUERY_STRING} 25252525
RewriteRule .* - [F,L]
</IfModule>
这将阻止所有查询字符串包含“25252525”的 HEAD 请求。显然,您可以根据需要进一步调整!