Как я могу заблокировать все запросы HEAD к URL-адресам, которые содержат подстроку в Apache?

Управляемый мной сервер сталкивается с плохо закодированным ботом, созданным на 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) .

0
задан 11 February 2017 в 20:46
1 ответ

Как насчет использования mod_rewrite в вашем .htaccess?

<IfModule mod_rewrite.c>
    RewriteCond %{REQUEST_METHOD} HEAD
    RewriteCond %{QUERY_STRING} 25252525
    RewriteRule .* - [F,L]
</IfModule>

Это заблокирует все запросы HEAD со строкой запроса, содержащей «25252525». Очевидно, вы можете настроить это больше по своему усмотрению!

1
ответ дан 4 December 2019 в 16:21

Теги

Похожие вопросы