Referer Spam : headshots à revendre

Le truc à la mode chez les spammeurs en ce moment c’est le referrer spam, ou la pollution de vos logs Apache par des sites peu recommandables, vous donnant ainsi l’impression que la moitié de vos visiteurs sont des détraqués sexuels cherchant le repos dans des analyses économiques ou dans des exposés de littérature espagnole, comme Don Alvaro ou Dona Inés.

Au début, on se demande comment ces mystérieux visiteurs ont pu trouver notre site. Après 3 ou 4 jours et quelques milliers de hits sur les mêmes pages avec un pic de consommation de bande passante, on commence à voir rouge.

Ma mission (et je l’accepte) : bouter les spammeurs hors du site. J’ai pour cela étudié 2 possibilités : soit on gère tout avec Apache et ses .htaccess, soit on écrit un script PHP qui va bloquer les intrus et les envoyer ailleurs.

J’ai privilégié le .htaccess vu que cela se fait au bas niveau du serveur, ce qui devrait consommer moins de ressources que l’interprétation du script PHP.

Méthode 1 : utilisation du .htaccess

Le principe est simple : nous allons tester la variable HTTP_REFERER de nos visiteurs et vérifier qu’ils ne sont pas blacklistés.

S’ils le sont, on les expédie sur un site bidon (voir la dernière ligne).

Toutes les lignes de la blacklist se finissent par [OR] ou [NC,OR] sauf la dernière qui se termine en [NC]:

RewriteEngine On
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?joyvids.com.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?formymob.com.*$ [NC,OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?foryourmob.com.*$ [NC,OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?bkinky.com.*$ [NC,OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?topshelfinks.com.*$ [NC,OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?wickedringtones.com.*$ [NC,OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?pvblog.com.*$ [NC,OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?highprofitclub.com.*$ [NC,OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?wickedringtones3.com.*$ [NC,OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?wickedringtones4.com.*$ [NC,OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?.*(-|.)adult(-|.).*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?.*(-|.)anal(-|.).*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?.*(-|.)gay(-|.).*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?.*(-|.)mature(-|.).*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?.*(-|.)nude(-|.).*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?.*(-|.)porn(-|.).*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?.*(-|.)pus*y(-|.).*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?.*(-|.)sex(-|.).*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?.*(-|.)teen(-|.).*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?.*(-|.)tits(-|.).*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?.*(-|.)titten(-|.).*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?.*accepted.cc$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?.*episodesusdbz/.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?advancedmoneyloans.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?affiliplanet.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?apart-?design.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?auktion.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?autogewinne24.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?autospiele24.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?babay.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?euromillionen.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?eurowins.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?geldspiele24.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?goovle.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?gsm-support.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?gzltax.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?heil-fasten.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?immobiliengewinne24.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?incest-.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?keywordmaster.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?nackt-stars-nackt.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?one2onemag.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?qw8.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?referrer-script.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?reisegewinne24.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?rootfood.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?shemale.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?single66.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?slamhost.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?spielepsychatrie.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?superface.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?topgewinn24.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?topspiele24.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?transexual.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?usa-wins.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?vendini.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?webmasterplan.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?wseeker.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?xmaster.*$ [OR]
 RewriteCond %{HTTP_REFERER} ^http://(www\.)?spammersite7.com.*$ [NC]
 RewriteRule \.*$ http://spam.abuse.net/ [R,L]
 RewriteEngine OffCode language: JavaScript (javascript)

Méthode 2 : utilisation d’un script PHP

Même principe mais en se servant de PHP, je ne vais pas réinventer la roue : suivez l’exemple de Holy Schmoly!

Voilà, le mois de mars vient de commencer et je n’ai plus aucun pollueur dans mes stats. La liste est bien sûr à moduler selon vos spammeurs et les sites que vous souhaitez bloquer.

Recherchez-vous un expert WordPress ou WooCommerce sur qui vous pouvez compter? Ne cherchez plus.

Faites confiance à mon expertise »

Articles conseillés :

Matt

Matt Biscay est développeur WordPress et WooCommerce certifié chez Codeable, ainsi que sysadmin qualifié et enseignant-chercheur. Passionné par le code performant et les solutions sécurisées, je m'efforce d'offrir une expérience utilisateur exceptionnelle sur chaque projet.

Vous avez aimé cet article ? Vous avez un projet en tête et vous pensez que je pourrais vous aider à le concrétiser ? N'hésitez pas à me contacter, je serais ravi de discuter avec vous de votre projet !