Управляемый мной сервер сталкивается с плохо закодированным ботом, созданным на 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». Очевидно, вы можете настроить это больше по своему усмотрению!