Администрируемый мной сервер сталкивается с плохо закодированным ботом, созданным на 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-адреса.
Как я могу просто заблокировать все запросы HEAD, содержащие подстроку (скажем, %25252525
)?
я бегу Apache/2.4.6 (CentOS)
.
Как насчет использования mod_rewrite в вашем .htaccess?
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_METHOD} HEAD
RewriteCond %{QUERY_STRING} 25252525
RewriteRule .* - [F,L]
</IfModule>
Это заблокирует все запросы HEAD со строкой запроса, содержащей «25252525». Очевидно, вы можете настроить это больше по своему усмотрению!