Aujourd'hui, je vais vous parler d'un nouveau type de spam qui a fait son apparition il y a quelques mois sur nos sites web : Le referer spam.
Le referer spam, c'est quoi ?
Le referer spam (ou Pourriel de référant, pour les anglophobes.) est une nouvelle technique de spam que nous avons vu apparaître sur les analytics de nos différents sites il y a quelques mois. Avant de vous expliquer son fonctionnement, un peu de vocabulaire.
Lorsque votre analytics enregistre le trafic sur votre site, il enregistre de nombreuses informations pour chaque visite : temps de la visite, nombre et adresses des pages visité, et le site sur lequel était le visiteur avant de venir chez vous, que l'on appelle le référer. Analyser ses referer est important, car cela permet de savoir quels sont nos fournisseurs de trafic principaux, pour éventuellement améliorer ce qui doit l’être (plus de présence sur les réseaux sociaux, améliorer son référencement, …).

L'avantage de ce problème est qu'il est assez simple à dépister. Avez-vous eu une très forme augmentation de visites ? Avez-vous dans vos référés de ces derniers mois "buttons-for-you-website.com" ou "best-seo-offer.com" (ce ne sont que des exemples, mais les noms sont tous un peu dans ce style) . Si oui, votre site est malheureusement atteint.
Dans ce cas-là, pas de soucis, la solution existe. Dans le cas contraire, je conseille vraiment de mettre en place les protections du chapitre suivant quand même, pour éviter les mauvaises surprises.

Que faire pour s'en débarrasser ?
Solution 1 : modifier le .htaccess
La solution la plus radicale est de bannir les sites en question directement depuis le .htaccess de votre site. Pour cela, ajoutez ce qui suit dans le fichier .htaccess (ou créez-en un si nécessaire) a la racine de votre site.
## Site referer cleanup
# Liste
RewriteCond %{HTTP_REFERER} 100dollars-seo.com [NC,OR]
RewriteCond %{HTTP_REFERER} 12masterov.com [NC,OR]
RewriteCond %{HTTP_REFERER} 4webmasters.org [NC,OR]
RewriteCond %{HTTP_REFERER} 7makemoneyonline.com [NC,OR]
RewriteCond %{HTTP_REFERER} acads.net [NC,OR]
# Redirection
RewriteRule .* – [F]
Je vous laisse dupliquer la ligne RewriteCond pour chacun des spams référer dont vous êtes atteint, ou utiliser cette liste au complet : Referer spam blacklist.

Cette technique a l'avantage de ne pas autoriser du tout les visites depuis ses referer, et donc vous protéger totalement de tous les risques, DDOS compris. L’inconvénient est de devoir mettre à jour cette liste régulièrement, de nouveaux domaines apparaissant tout le temps.
Si vous êtes sous WordPress, un plugin fait ça pour vous : Spam Referer Block.
Si vous n’êtes pas sous WordPress mais que vous avez de petites bases de dev, il est possible d'automatiser quelque chose avec cette liste souvent mise a jour et un petit cron.
Solution 2, depuis votre analytic
Si vous êtes sur un hébergement suffisamment puissant pour que le risque de DDOS ne vous inquiète pas, la solution est de filtrer ses referer depuis votre analytics. L'avantage de cette méthode est qu'elle est retroactive, et vous permettra de "corriger" l'historique de votre analytics.
Pour ce point, la mise en place diffère pour chaque analytic.

Pour Google analytics, il faut aller dans admin > filtres > aouter un filtre, choisir comme type de filtre "personalise", champ à filtrer "Sites referent", et ajouter comme regle de filtrage tous vos spams référer sous cette forme : "100dollars-seo.com.|12masterov.com.|4webmasters.org."
Pour les utilisateurs de Piwik, bonne nouvelle ! Cet analytic gère déjà les referer spam ! Chaque mise à jour ajoute de nouveaux domaines à filtrer, vous n'avez donc rien à faire.
Enfin, pour les autres analytics, je ne pourrais pas vous aider, mais la technique doit être sensiblement la même que cette de Google Analytics.