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
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
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
Tags apache-2.2 mod-security