Назад | Перейти на главную страницу

Как я могу заблокировать все запросы 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).

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

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

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