Tag

spam

Browsing

Gravity Forms permet de créer rapidement des formulaires avec des logiques conditionnelles sous WordPress.

Dans les options de Gravity Forms, il existe une option qui ajoute un champ caché au formulaire, « honeypot », qui permet d’éviter le spam mais qui doit être activé manuellement pour chaque formulaire, ce qui peut être rapidement fastidieux selon le nombre de formulaires que vous avez sur le site.

Voici comment activer et ajouter le champ honeypot à tous vos formulaires, automatiquement:

<?php
/**
 * Enforce anti-spam honeypot on all Gravity forms.
 *
 * @param array $form The current form to be filtered.
 * 
 * @return array
 */
add_filter( 'gform_form_post_get_meta', __NAMESPACE__ . '\\sky_enforce_gravity_forms_anti_spam_honeypot' );
function sky_enforce_gravity_forms_anti_spam_honeypot( $form ): array {
	$form['enableHoneypot'] = true;
	return $form;
}

Il y a quelques jours, j’ai eu la surprise de recevoir un spam manuel sur le blog – ce qui devient assez rare, la plupart du spam étant totalement automatisé. Et je dois dire qu’il m’a bien fait rire :

Echanger un dentier contre un gant de baseball… mais pourquoi pas ?? Ils sont fous ces spammeurs.

no-spamIl y a quelques années, j’ai pris part au projet Honey Pot qui vise à identifier les responsables d’envois massifs de courriers indésirables (autrement dit : du spam) grâce à des pages créées à cet effet. Dans la même optique, j’avais utilisé wpoison pour créer des adresses email bidons pour corrompre la base email des robots aspirateurs.

Et bien ce projet ambitieux vient de traiter plus d’un milliard de spams depuis son lancement. Cela a donné lieu à une petite étude et voici ce que l’on peut en retirer :

Il y a quelques jours, j’ai reçu un message sur Facebook, envoyé par un de mes contacts. Comme cela vient d’un contact de confiance, je clique sur le lien : rien ne se passe. Je l’informe alors que son lien ne fonctionne pas : elle me répond qu’elle n’a jamais envoyé ce message. Bizarre !

Le problème : un trojan MSN qui envoie des messages aux contacts Facebook

Il s’agit en fait d’un bon petit cheval de troie comme on en voit voyait tous les jours dans nos boites mail (avant Gmail). Le truc qui change, c’est qu’il se trouve dans un message à lire sur le site de Facebook. Les messages avaient les sujets suivants :

c’est pas toi ?
ta tof fais koi sur ce site ?

Is it u there??
Hey yo.
This video frm our weekend.
I saw you htere. I’m soo proud to see it.

Comme annoncé il y a quelques semaines, la base membres du site a subie un petit régime : tous les faux comptes créés par des bots spammeurs ont été éradiqués, ainsi que les comptes créés mais jamais utilisés. Mine de rien, cela fait pas mal de place dans la base de données, qui passe de 13.5 Mo à 11.3 Mo : plus de 2 Mo gagnés, cela fait autant de moins lors de la création des sauvegardes quotidiennes !

Cela ne devrait rien changer pour vous : tous les comptes ayant servis ont été gardés et le plugin SABRE ré-activé immédiatement après le nettoyage donc la base membres est donc bot-proof à partir de maintenant.

Pour la petite histoire, SkyMinds.Net passe de 2 412 membres fantômes à 807 membres actifs.

No Spam !Vous possédez votre propre site et êtes submergés par le spam ? Si vous ne souhaitez pas confier votre précieuse correspondance à un service tiers de messagerie (webmail de votre FAI ou autres) et que votre hébergeur vous propose CPanel pour administrer votre site, voici comment se débarrasser des spams de manière automatique avec SpamAssassin et une règle de filtrage qui s’appliquera à chaque message reçu par le serveur.

AntispamAprès avoir pollué nos boîtes mail de scams et de tentatives de phishing – et certains sites de spywares et autres malwares – voici que les spammeurs ont trouvé une nouvelle cible : les newsletters. Cette tendance semble avoir démarré il y a quelques semaines : la newsletter de SkyMinds.Net subit par exemple une dizaine d’attaques par jour.

Le principe

Les spammeurs semblent vouloir corrompre les bases de données des newsletter en les populant avec des emails erronées (nom d’utilisateur ou domaine inexistant). Finalement, ils ont repris le principe de wpoison mais contre nos bases de données cette fois ! Le but de cette manoeuvre, à part la surcharge des serveurs mails et des filtres anti-spam, reste relativement obscur. Ils n’ont à priori rien à gagner ainsi.

Se protéger

Si vous gérer votre lettre d’information, vous risquez d’être la cible de ces spammeurs. Il existe plusieurs manières de s’en protéger :

  1. vérifier l’adresse email avant l’insertion dans la base de données : solution écartée car coûteuse en ressources. En effet, votre script doit vérifier le nom de domaine puis l’existence de l’utilisateur sur le domaine. La requête peut ne pas aboutir (time-out) et votre possible souscripteur aura quitté votre site devant la lenteur d’exécution.
  2. insérer l’adresse dans la base dès l’inscription puis valider selon quelques critères. C’est la solution retenue ici pour son efficacité et sa facilité d’utilisation.

Validation d’adresse email pour une newsletter

Prenons l’exemple de la newsletter de SkyMinds.Net qui utilise plusieurs routines afin de vérifier que la base données est bien peuplée d’adresses emails légitimes. L’adresse est ajoutée directement à condition qu’elle soit correctement formée. Un mail est alors envoyé au visiteur afin qu’il confirme son inscription. Sans aucun geste de sa part dans les 3 jours, l’adresse est supprimée.

  1. Vérification de la bonne formation de l’adresse email :
    /*
    Script Validation d'email par Matt - https://www.skyminds.net/
    Retourne TRUE si l'adresse est valide et FALSE si incorrecte.
    */
    function SkyVerif($mail)
    {
    	return(eregi("^[a-z0-9]+([_.-][a-z0-9]+)*@([a-z0-9]+([.-][a-z0-9]+)*)+\\.[a-z]{2,4}$",$mail));
    }
    
  2. Suppression automatiques des adresses non-validées dans les 3 jours suivant l’inscription. La table contenant les adresses contient deux champs : opt_in (statut de l’adresse, égal à no par défaut) et register_date (date d’inscription) :
    /*
    Script Antispam-Expiration par Matt - https://www.skyminds.net/
    Les adresses non validées au bout de 3 jours sont supprimées automatiquement
    */
    
    $sql = 'DELETE FROM ' . $newsletter_table . ' WHERE `opt_in`= \'no\' AND `register_date` < DATE_SUB(NOW(), INTERVAL 3 DAY)';
    $query = mysql_query($sql);
    

Ces routines sont lancées à chaque fois que quelqu'un cherche à s'inscrire sur la newsletter : pas besoin de cron pour garantir l'intégrité des données, chaque nouvelle inscription fait le ménage dans la base de données et optimise les tables : suppression automatique des fausses adresses et autres techniques "spammiques" !

Tiens, c’est bizarre, je commence à avoir du spam sur mon compte Gmail : je n’en avais jamais eu jusqu’à présent et j’ai bien dû en recevoir une dizaine aujourd’hui. Même s’il est immédiatement capté par les filtres et redirigé dans le dossier spam, on perd toujours du temps à vérifier que des messages légitimes ne sont pas passés à la trappe. Une vraie perte de temps.

Heureusement, je n’ai (quasiment) plus ce problème sur le blog : après des dizaines d’essais, je pense à être arrivé à la solution la plus intéressante en terme de défenses anti-spam. J’ai abandonné la solution en .htaccess qui bloquait certains utilisateurs pour utiliser les plugins suivants :

  • Akismet filtre tous les commentaires via ses serveurs,
  • TrackBack Validator vérifie que les pages qui envoient des trackbacks existent vraiment et que l’on fait bien référence au site,
  • Non-Numeric Names ventile à vue les commentaires postés avec des noms d’utilisateurs composés uniquement de chiffres,
  • EmailShroud encode toutes les adresses emails présentes sur les pages pour éviter le siphonnage des spam-bots,
  • WordPress Hashcash envoie un petit code Javascript au client au chargement des pages, ce qui roule les spam-bots dans la farine pour le moment.

Analysons un peu la situation : en activant seulement Akismet, le blog capte entre 100 et 200 spams par jour. En ajoutant WP-Hashcash et TrackBack Validator, c’est environ 2 tous les 3-4 jours et pas vraiment du spam mais plutôt des résultats de moteur de recherche genre Alice.fr ou Télécharger.com. Ce sont pour moi les 3 plugins les plus efficaces. J’ai essayé Bad Behavior pendant quelques temps mais cela ne m’a pas convaincu, doublant la taille de la base de donnée en quelques jours ! Je considère donc ma quête comme momentanément aboutie – être virtuellement spam-free, c’est très agréable !

Note : Akismet vient d’être mis à jour.

ToolboxEt oui… j’ai osé… Je me suis amusé à ajouter un petit live counter sur le thème principal du blog : cela affiche le nombre de personnes connectées ainsi que le nombre de membres, à la manière des forums. J’ai ajouté d’autres plugins également : Impostericide, pour éviter que certains signent leur commentaire avec le nom de membres enregistrés, Search Everything pour rechercher sur tout le contenu du blog (pages inclues) et EmailShroud pour protéger vos adresses email des spam bots. Enfin, Akismet est désormais activé : vu l’ampleur du spam ces temps-ci (une bonne cinquantaine par jour) cela est devenu nécessaire. Bloody spammers… :-/

J’ai ensuite ajouté deux nouvelles tabs dans le menu horizontal : la page auteur est désormais renseignée – même si elle reste partielle – et la page contact fait maintenant partie du blog. Disons que cela est un peu plus cohérent. J’ai procédé à quelques ajouts de plugins invisibles, tels French typography, qui respecte la nomenclature française et corrige – involontairement je pense – le bug d’affichage UTF-8 introduit par le Javascript/AJAX d’Inline Ajax Comments, qui permet d’afficher les commentaires directement sur la page d’accueil : le lien se trouve juste en dessous du post (« show comment »).

Et au niveau des RSS, j’ai ajouté le bouton FeedWhip, qui alerte ceux qui sont inscrits des mises à jour du blog par email, et remplacé le bouton Mapstats par celui d’Evostats, plus rapide à charger.

GhostBusterJ’ai récemment eu affaire à des voleurs de contenu et après avoir contacté le service des abus de MSN, j’ai reçue une réponse pré-formattée comme quoi il fallait que j’envoie tous les justificatifs et tous les détails prouvant mon identité à Microsoft par courrier postal. Mas bien sûr… et la marmotte…

Etant donné que je n’allais recevoir aucune aide de leur part, j’ai retroussé mes manches et me suis appliqué à trouver une solution.

Tout d’abord, j’ai revu le code .htaccess qui était censé prévenir le hotlinking mais qui visiblement ne fonctionnait pas : j’ai laissé tomber les règles mod_rewrite pour SetEnvIfNoCase, beaucoup plus efficace :

#
# Hotlink control - by SkyMinds.Net
#
SetEnvIfNoCase Referer "^http://www.monsite.net" local_referal
SetEnvIfNoCase Referer "^$" local_referal

<filesmatch ".(gif|jpe?g|png)$">
	Order Deny,Allow
	Deny From All
	Allow from env=local_referal
</filesmatch>

ErrorDocument 403 /403.shtml

Explications

Etant donné que les indélicats copient le code HTML des textes avec l’adresse des images, ils affichent de ce fait mes images sur leur site, ce qui ne leur coûte rien mais qui gaspille ma bande passante. Que je paye chaque mois.

L’astuce consiste donc à vérifier que la page qui fait appel aux images réside sur mon domaine. Dans le cas contraire, l’indélicat voleur reçoit une erreur 403 : les images ne s’affichent plus sur son site et notre bande passante n’est plus inutilement gaspillée. Résultats : happy webmaster :)

Non mis en place ici mais cela pourra en intéresser quelques uns : Smarter Image Hotlinking Prevention.

Hotlink Tests and Tools

La gifle (tirée de Bloodline (Ange et Varanda))Je viens de placer une nouvelle règle dans les options de ce blog : les commentaires venant de skyblogs seront désormais supprimés. J’en ai marre de devoir passer 10 minutes chaque semaine pour virer toute leur pub mesquine ou leurs messages écrits en SMS. Au début je corrigeais les fautes d’orthographe les plus graves et laissais les commentaires. Maintenant je les vire directement. Nice and easy.

Bien après les spammeurs en tout genre, voilà qu’on est confronté aux voleurs de contenu. Vous me direz que ce n’est pas la première fois que cela arrive : j’ai déjà eu à demander à ce que l’on retire des pages de littérature qui avaient été littéralement (huh huh) pompées. Et bien voilà qu’aujourd’hui, ce sont d’autres pseudo-bloggers qui prennent un de mes posts mot pour mot et avec les images en plus ! Non seulement cela vous met en rogne lorsque vous voyez votre texte ailleurs que là où il devrait se trouver, mais en plus le petit rigolo vous pompe votre bande passante, tranquillement comme une vieille sangsue. Direction MSN > Signaler un abus > Violation des droits d’auteur. Il faudrait que je modifie mon .htaccess pour ce gaillard-là [evil grin].

Vraiment marre des splogs et autres joyeusetés. On ne peut plus passer notre temps à faire le ménage ou à traquer les abrutis. Je viens de jouer avec SplogSpot, qui fournit également quelques APIs pour vérifier que les commentaires ne sont pas issus de link-farm ou splogs. A voir. Je me demande qui va passer son temps à mettre leur base de données à jour…

J’ai déjà mentionné dans ces colonnes que j’utilisais SpamKarma 2 sur ce blog : et bien c’est fini, j’ai abandonné le plugin parce qu’une fois sur deux, il plaçait mes commentaires en modération – alors que je suis quand même le rédacteur principal ! J’ai donc tout désactivé et ô surprise : pas de spam à l’horizon. Rien, pas de commentaires ni de pingbacks ou trackbacks de spammeux. Du coup, le site a retrouvé sa vitesse d’antan avec un affichage instantané des pages : je suis quasi-certain que le problème vient de SK2 puisque dès qu’il est activé, j’ai des pages et des pages d’erreurs dans mes logs Apache… dommage. Du coup, j’ai également désactivé le compteur de spams supprimés, cela fait un truc geek de moins sur le blog. On progresse ^_^

Je viens d’installer un nouveau plugin, LMB^Box Comment Quicktags, qui permet à tous de poster des commentaires grâce à la barre de tags XHTML que j’utilise pour poster sur ce blog. Cela n’a l’air de rien mais cela fait gagner un temps fou. Ce serait d’ailleurs bien si tous les forums genre IPB ou VB possédaient nativement cette fonctionnalité pour le quick reply – en attendant, la seule alternative que j’ai trouvé réside dans l’installation de BBCodeXtra, une extension pour Firefox qui gère tous les quicktags les plus usités sur les forums. Très pratique !

Mise à jour des plugins :

Enfin, je me suis enfin décidé à ajouter les deux lignes nécessaires à ma feuille de style pour que le texte soit (enfin !) justifié. Et là, je dois dire que cela fait tout de suite beaucoup plus organisé et professionnel. J’ai également ajouté un petit bout de code PHP et CSS pour que WordPress reconnaisse mes commentaires et les affichent d’une autre couleur, histoire de les différencier des autres commentaires – cela donne un petit air plus offciel :) Je me demande bien pourquoi cela ne m’est venu à l’esprit plus tôt… arf !

Rapport de faute d’orthographe

Le texte suivant sera envoyé à nos rédacteurs :