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

Правило mod_security для блокировки запросов GET через querystring или referer

В последние дни на моем VPS было много запросов GET к 1 файлу, которые вызывают высокую нагрузку на память (все исходили с одного ссылочного URL с разными IP-адресами).

До сих пор я блокировал эти запросы через .htaccess

# by refurl
RewriteCond %{HTTP_REFERER} domain\.com [NC]
RewriteRule .* - [F]
# by querystring
RewriteCond %{QUERY_STRING} \ba=ZicX9v\b [NC]
RewriteRule ^ - [F]

Но таким образом запросы все еще обрабатываются apache и по-прежнему вызывают высокую нагрузку на память.

Могу ли я заблокировать эти запросы с помощью mod_security (возможно, на этапе 1), чтобы предотвратить / уменьшить нагрузку на память?

До сих пор я установил для этого правила значение mod_secuurity (но я не уверен, что это правильно):

SecRule REQUEST_HEADERS:REFERER "(?i:(THEDOMAIN))" phase:1,deny,status:412,id:'1234'

PS: мой VPS - это Linux с apache2.2

РЕДАКТИРОВАТЬ: весь мой веб-сайт использует HTTPS, не уверен, следует ли мне что-то добавлять

Я проверил ваше правило, и, похоже, оно работает.

Вы также можете проверить это с помощью curl, примерно так:

curl --referer https://bad-referer-domain.com  https://your-site.com