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.

Nouveau serveur pour le CKYF

Je me suis occupé aujourd’hui du transfert du site du Centre de Kriya Yoga France sur l’un des nouveaux serveurs de mon hébergeur favori.

Le CKYF était précédemment hébergé chez Online (hébergement payant d’une des filiales de Free) et je suis franchement bien content de les quitter : finies les lenteurs aux heures de pointe, les réponses automatiques du support technique et les 3 semaines d’attente pour avoir une réponse vague sans grand rapport avec la question posée.

Terminées les limitations diverses comme la fonction email() de PHP, l’impossibilité de créer un forum ou une boutique en ligne sans devoir réécrire la moitié des scripts. Bye bye Online, je ne te regretterai vraiment pas. Et il est hors de question que je t’envoie une lettre de résiliation en recommandé : quel est l’intérêt de payer un hébergement dans les 40 euros si pour résilier il faut envoyer une lettre à 8 euros ? Empêcher les clients malheureux de partir ?

Tout ceci m’a pris environ une demi-heure et le reste de ma journée s’est déroulé à l’IUFM. Quasiment 4 heures de cours magistral sur la culture et l’apprentissage, à recopier des diapositives PowerPoint aux effets lassants, avec des polices rouges sur fond rouge pour faciliter la visibilité et la compréhension. Bref, la torture.

Et encore, le prof évite maintenant d’inclure des sons dans ses présentations, signe que râler à voix basse – mais suffisamment fort pour être entendu de tous – peut parfois porter ses fruits. N’empêche que si j’avais su…

Février ou la fuite du temps

Roue du Temps

Février. Je n’aime pas février.

J’ai toujours la furieuse sensation de me faire voler de 3 ou 4 jours et ce phénomène se répète chaque année sans que personne ne puisse rien y faire.

C’est au cours du mois de février que l’on réalise le mieux l’importance de la fuite du temps, comme si elle attendait ce mois pour étendre ses ailes diaphanes et affirmer sa présence au yeux du monde.

Le temps joue également un rôle d’adjuvant à ce phénomène : la lumière peine à traverser les brumes éthérées mais parvient à blesser mes yeux de par sa vive blancheur.

Mes yeux se ferment, mon corps s’abandonne à cette douce torpeur mais mon esprit bataille pour reprendre le contrôle de ma conscience, et réaffirme sa prise. Je ne dois pas dormir. Je ne dois pas.

Mon esprit résiste et lutte encore mais se résoud finalement à quelques minutes de repos, yeux fermés. Blackout.

Une suite de rêves entremêlés de brumes s’impose à mon inconscient qui les accepte sans broncher.

Depuis quand est-ce que je parle espagnol dans mes rêves ? Aucune idée. Je me réveille.

Le temps s’écoule entre mes doigts comme d’un sablier, inexorablement. “Le temps, c’est ce que vous en faîtes” disait une pub pour Swatch. Oui, mais ce n’est pas si simple : la Roue Du Temps tisse selon son bon vouloir, incluant personnes et évènements dans un dessin dont elle seule connaît la signification.

Le Temps est une donnée versatile. Il nous en manque toujours et nous le gaspillons lorsque nous en avons trop. Nous parvenons à l’oublier quelques temps et voici qu’il se manifeste à nous, un sourire cruel aux lèvres. Tic tac.

Même l’onomatopée représentant le mouvement de la pendule nous rappelle que nous ne luttons pas à armes égales contre lui. Le Temps est un ruban de Moëbius sur lequel nous sommes obligés de marcher pour une durée que le “Grand Horloger” a fixé.

Et pourtant le Temps est le plus bel exemple de démocratie et d’égalité : il s’applique à tout le monde sans différenciation de langue, culture ou couleur. Il façonne nos manières de penser puis les modifie subtilement, petit à petit.

Le Temps et son amie Vieillesse nous attendent, ne les décevons pas.