Nginx: Bloquer le spam référent
Dans cet article, nous vous montrerons comment bloquer le spam référent dans l'un de nos serveurs Web Nginx.
1. Trouvez les motifs
Vérifiez le fichier Nginxaccess.log
et identifiez les modèles de «spam référent».
$ sudo tail -f /var/log/nginx/access.log
Quelques modèles:
200 http://???.ru/engine/redirect.php?url=http://mywebsite.com/site/blogspot.com.au 200 http://???.com/tp/out.php?link=alternatevideo&url=http%3A//mywebsite.com/site/readyliftproshop.com 200 http://???.edu/online/redirect.asp?url=http://mywebsite/site/wheretoshophongkong.com
Nous allons bloquer les modèles suivants:
-
redirect.php
-
out.php
-
redirect.asp
2. Block & Return 405
Modifiezsites-enabled/default
, si l'un des modèles ci-dessus correspond, retournez directement 405.
if ($http_referer ~* (redirect.php|redirect.asp|out.php) ) { return 405; }
Examinez l'exemple complet de notre serveur Web Nginx. En fait, nous bloquons de nombreux modèles de spam.
/etc/nginx/sites-enabled/default
server { listen 80; server_name mysite.com; root /etc/tomcat7/webapps/mysite; proxy_cache one; if ($http_referer ~* (seo|referrer|redirect|link=|url=|url?|path=|dku=|babes|click|girl|jewelry|love|organic|poker|porn|sex|teen|video|webcam) ) { return 405; } location / { proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:8080/; } }
Terminé, redémarrez Nginx.
Vérifiez à nouveau le fichier journal, maintenant, toutes les demandes futures qui correspondent aux modèles déclarés, 405 seront retournées.
$ sudo tail -f /var/log/nginx/access.log
405 http://???.ru/engine/redirect.php?url=http://mywebsite.com/site/blogspot.com.au 405 http://???.com/tp/out.php?link=alternatevideo&url=http%3A//mywebsite.com/site/readyliftproshop.com 405 http://???.edu/online/redirect.asp?url=http://mywebsite/site/wheretoshophongkong.com