我pipe理的一个服务器正在被一个糟糕的编码的AWS构build的机器人所困扰,这个机器人不断地切换IP并且似乎卡在一个recursion编码循环中。 我能看到的唯一一致的指纹是每个请求只是一个HEAD请求,每个请求似乎都重新编码了前一个请求。 所以http://someurl.com/?foo=%25bar成为..%2525..变成..%252525.. … %2525252525252525...x1000 ..%252525.. … ..%252525.. 。
以下是我看到的请求types的示例:
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。
我怎样才能阻止所有包含子string的HEAD请求(比如%25252525 )?
我正在运行Apache/2.4.6 (CentOS) 。
如何在你的.htaccess中使用mod_rewrite?
<IfModule mod_rewrite.c> RewriteCond %{REQUEST_METHOD} HEAD RewriteCond %{QUERY_STRING} 25252525 RewriteRule .* - [F,L] </IfModule>
这将阻止包含“25252525”的查询string的所有HEAD请求。 显然你可以调整这更多,因为你觉得合适!