Analytics Spammers
Qu'est-ce que c'est ?
Ce modeste dépÎt a pour objectif de bùtir une liste des spammeurs Analytics ainsi que des snippets et modules à intégrer dans son appli pour s'en protéger., (*1)
Si vous ne savez pas ce que c'est, je vous invite Ă lire cet article : https://marceau.casals.fr/blog/2015/05/le-htaccess-ce-heros
On appelle communément ce type de spam du SPAM par Référent ou Referer SPAM., (*2)
Pour résumer, de nombreux sites tentent de faire du pognon en polluant les statistiques (Piwik, Google Analytics et consor) en faisant du SPAM par site référent., (*3)
Je vous invite à regarder dans la liste des sites référents dans vos stats pour vous rendre compte pourquoi c'est important et pourquoi c'est génant quand on cherche à avoir des stats fiables pour ses sites web., (*4)
Usage
L'usage de cette liste est multiple. Cette derniÚre liste les noms de domaines référents habituellement utilisés pour le SPAM., (*5)
Il y'a plusieurs façon de les bloquer :
* Filtres Google Analytics
* .htaccess ou configuration nginx
* Script PHP (voir Module Laravel 5), (*6)
Snippets
Le dossier snippets a pour objectif de contenir des scripts tout fait pour bloquer les spammeurs; en commençant par un fichier de configuration pour Apache et NGINX., (*7)
En fonction du temps à ma disposition, j'essaieai de faire des scripts pour les différents Frameworks : CodeIgniter, Laravel et Symfony, pour ceux que je connais bien., (*8)
Module Laravel 5
Un module pour Laravel 5 est disponible si vous souhaitez automatiser le blocage.
Il s'agit d'un middleware pour votre application que vous pourrez utiliser de maniĂšre globale ou seulement pour certaines routes., (*9)
Attention, bien que fonctionnel, le plugin est vraiment en phase de test. N'hésitez pas à l'améliorer :)
Notez également que le filtre est conçu pour fonctionner uniquement en production (APP_ENV = production)., (*10)
Installation via Composer
composer require akibatech/analytics-spammers
Intégration à Laravel
Il suffit pour cela d'ajouter une entrée à votre fichier App/Http/Kernel.php. Il y'a deux maniÚres de procéder :, (*11)
De maniÚre globale, comme le fait le middleware par défaut CheckForMaintenance :, (*12)
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\Akibatech\Spammers\Laravel\Http\Middleware\CheckForSpammers::class, // Sera appliquĂ© pour chaque requĂȘte
];
Ou pour certains groupes de route, par exemple pour le groupe web :, (*13)
protected $middlewareGroups = [
'web' => [
// ... Les autres middleware
\Akibatech\Spammers\Laravel\Http\Middleware\CheckForSpammers::class, // Sera appliqué pour les routes sous le joug du groupe web
],
];
Mise Ă jour du dictionnaire
composer update akibatech/analytics-spammers
Ceci mettra automatiquement Ă jour le dictionnaire de spammers, Ă savoir le fichier spammers.json., (*14)
Contribuer
Si le projet vous semble d'utilité publique, libre à vous de Puller sur ce dépÎt en ajoutant les spammers à la liste ou en proposant vos snippets., (*15)
Note
Il existe également une base de données similaire proposée par Piwik : https://github.com/piwik/referrer-spam-blacklist, (*16)
Contributeurs
- Marceau Casals (Initiateur)
- Thomas Sileghem (Générateur Node.js)