mod_security para bloquear pedidos GET através de querystring ou referer

1

Nos últimos dias em meu VPS, há muitas solicitações GET em um arquivo que causam uma alta carga de memória (todas vieram de um único URL de referência, com IPs diferentes).

Até agora, bloqueei esses pedidos via .htaccess

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

Mas, desta forma, as solicitações ainda são processadas pelo apache e ainda causam uma alta carga de memória.

Posso bloquear este pedido com o mod_security (talvez no phase1) para evitar / diminuir a carga de memória?

Até agora eu configurei esta regra para mod_secuurity (mas não tenho certeza se está certo):

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

PS: meu VPS é linux com apache2.2

EDIT: todo o meu site força HTTPS, não tenho certeza se devo adicionar algo

    
por ipel 17.04.2015 / 13:33

1 resposta

1

Testei sua regra e parece funcionar.

Você também pode testá-lo com o curl, com algo assim:

curl --referer https://bad-referer-domain.com  https://your-site.com
    
por 13.10.2015 / 16:35