Les meilleurs moyens de lutter contre le spam

Le spam est l’un des principaux pièges du web social. Selon des sites tels que Postini, 10 courriers électroniques sur 12 sont du spam. Comme si cela ne suffisait pas déjà pour vous faire grincer des dents, 1 e-mail sur 39 contient un virus. Le spam pénètre également dans d’autres régions de l’Internet. Les créateurs du logiciel de blog Wordpress rapportent que près de 87% de tous les commentaires de blog sont également du spam. Alors que les applications de messagerie et de communication prolifèrent sur le Web, les développeurs et les propriétaires de sites doivent faire preuve de créativité dans la lutte contre les milliers de messages non désirés qui défilent chaque jour. Il peut être difficile de choisir la meilleure méthode de prévention du spam sur vos blogs, vos forums ou même vos formulaires de contact. Dans cet article, nous allons examiner un service appelé Akismet et comment il peut aider. Nous verrons également pourquoi certaines autres méthodes de lutte contre le spam échouent..

Méthodes de lutte contre le spam

Refuser plusieurs soumissions consécutives. Les spammeurs publient presque toujours plus d'un commentaire ou message de spam à la fois. Une méthode courante pour lutter contre le spam consiste à enregistrer le message entrant avec l'adresse IP de l'utilisateur et l'horodatage de la publication. Ensuite, lorsqu'un utilisateur tente de publier plusieurs commentaires, vous pouvez vérifier s'il a posté plusieurs fois au cours d'une période donnée, par exemple 30 secondes, ou si l'affiche actuelle est également la dernière. Ce n'est pas une méthode à toute épreuve, car les spammeurs peuvent utiliser des mandataires lorsqu'ils veulent poster plusieurs fois, et les robots ont autant de temps dans le monde qu'ils veulent pour spammer votre site..

Liste noire des mots clés. Une autre méthode de lutte contre le spam consiste à créer vous-même une liste noire des mots-clés courants du spam et à interdire les publications contenant les mots. Dans sa forme la plus simple, vous pouvez créer un tableau de mots-clés et vérifier si une chaîne entrante les contient. Les spammeurs ont développé des défenses contre cette méthode en publiant des variantes des mots. Ils remplacent les lettres par des chiffres, des symboles et d’autres caractères similaires pour créer une vaste sélection de variantes de mots clés..

CAPTCHA. CAPTCHA (Test de turing public entièrement automatisé) est l’une des techniques de prévention du spam les plus répandues sur le Web. La technique est très utile, et presque tous les sites qui vous permettent de créer un compte ou de publier des informations utilisent CAPTCHA publiquement d’une manière ou d’une autre. Les tests CAPTCHA peuvent être des fichiers audio, mais sont plus généralement des images présentant une série de caractères et de chiffres que vous devez entrer dans un formulaire. Cette technique est un outil utile pour bloquer les robots qui tentent de visiter votre site d’envoyer des spams ou de créer de faux comptes avec de fausses informations..

CAPTCHA fonctionne bien pour l'usage auquel il est destiné, mais présente des inconvénients mineurs. Un CAPTCHA nécessite (encore un autre) champ à remplir par les utilisateurs après la saisie des noms d'utilisateur, mots de passe et questions de sécurité. Il est compréhensible qu'un facteur d'agacement accompagne leur utilisation. De plus, les utilisateurs désactivés peuvent ne pas être en mesure d'utiliser le champ CAPTCHA. Enfin, les spammeurs humains peuvent également envoyer du spam sur votre site car un CAPTCHA ne bloque que les spammeurs de robots..

Alors qu'est-ce qui reste?

Après avoir passé en revue certaines des méthodes actuelles et leurs points faibles, vous vous demandez peut-être ce que nous pouvons faire de plus pour protéger nos applications de blogging. J'aimerais vous présenter un nouvel outil de lutte contre le spam créé par les créateurs de WordPress. Le service s'appelle Akismet et est décrit par ses créateurs comme "un effort de collaboration visant à éliminer le spam lié aux commentaires et aux rétroliens et à restaurer l'innocence des blogs, pour que vous n'ayez plus jamais à vous soucier du spam."

L'outil peut être implémenté dans n'importe quel projet, à condition de disposer d'une clé API pouvant être utilisée gratuitement pour un usage non commercial ou achetée à un usage commercial pour aussi peu que 5 $ par mois. Il existe plusieurs plug-ins Akismet pour les logiciels existants, et ceux-ci sont identifiés plus loin dans cet article. Sinon, vous pouvez inclure le service dans vos propres projets, comme nous le démontrerons.

Implémentation d'Akismet dans vos propres projets

Pour l'instant, le seul moyen de recevoir une clé API est de créer un compte utilisateur WordPress.com gratuit. Tournez vos navigateurs vers http://wordpress.com/signup/ et remplissez les champs obligatoires habituels: nom d'utilisateur, mot de passe et email, comme indiqué ci-dessous, puis lisez et acceptez les conditions du contrat de service. Assurez-vous de vous inscrire à un blog car vous ne pouvez pas recevoir de clé API sans vous inscrire. Ne vous inquiétez pas de ce détail, car la clé d'API ne sera pas liée à un blog spécifique. Une fois le processus d'enregistrement terminé, vous devriez recevoir un courrier électronique avec votre nouvelle clé API..

Vous devez maintenant télécharger et décompresser PHP5Akismet.0.4.zip (24K) à partir de Achingbrain. Téléchargez le fichier php unique dans une zone accessible par vos scripts. Les autres fichiers et la documentation sont juste pour référence.

Nous supposerons que vous travaillez avec un projet existant. Cela peut être tout ce qui permet aux utilisateurs de contribuer, comme un forum ou un blog. Nous supposerons également que la logique de création et d’affichage de contenu existe déjà. Dans cet esprit, notre première étape consiste à charger le fichier dans notre propre projet..

 include "chemin / vers / fichier / Akismet.class.php";

Ensuite, nous devrons créer une nouvelle instance de la classe Akismet. En utilisant le constructeur de classes, nous pouvons transmettre notre clé API et l'URL du site qui l'utilise. Assurez-vous de remplacer les données suivantes par les vôtres.

 $ akismet = new Akismet ("http://myblog.com", "API KEY HERE");

Le service a maintenant besoin des données de commentaire que nous souhaitons vérifier. Dans l'exemple suivant, j'utilise quelques exemples de données, mais en production, les informations de commentaire dériveraient des données POST. Le service Akismet compare ensuite les informations de commentaire à une base de données contenant plus de 7 486 928 953 commentaires de spam et renvoie un résultat si la publication soumise a été identifiée comme commentaire de spam..

 $ akismet-> setCommentAuthor ("Justin Shreve"); $ akismet-> setCommentAuthorEmail ("[email protected]"); $ akismet-> setCommentAuthorURL ("http://serenelabs.com"); $ akismet-> setCommentType ("forums"); $ akismet-> setCommentContent ("Je suis vraiment d'accord avec ce que vous dites! Je ne peux pas croire que je n'y ai jamais pensé auparavant!");

Les fonctions présentées ici sont assez simples. La seule fonction qui nécessite des explications supplémentaires est la fonction setCommentType. Akismet l'utilise pour aider le service à identifier l'origine du commentaire (a-t-il été posté sur un groupe de discussion public, un forum ou un blog?), Et vous pouvez transmettre tous les arguments de votre choix. Par exemple, si vous utilisez la fonction anti-spam d'un wiki, utilisez wiki comme type. Si vous protégez un blog, utilisez un type de blog.

Nous allons maintenant utiliser une fonction appelée isCommentSpam. C'est la fonction qui contacte réellement le service. La fonction booléenne retournera true si le commentaire est identifié comme spam et false si le commentaire est vérifié comme légitime.

 if ($ akismet-> isCommentSpam ()) // Ici nous pouvons stocker la logique pour traiter les commentaires de spam. // Habituellement, nous pouvons stocker le commentaire en interne pour une référence ultérieure au cas où le service commettrait une erreur.  else // C'est ici que vous insérez le contenu dans la base de données. 

Utiliser Akismet est aussi simple que ces quelques lignes de code! Vous avez maintenant intégré un service anti-spam dans votre site. Le service peut être utilisé conjointement avec les autres formes de défense anti-spam mentionnées précédemment. N'oubliez pas qu'Akismet est un service qui se développe chaque fois que vous l'utilisez, car ses fonctions ajoutent du contenu de spam à la base de données. Il peut y avoir des messages valides parfois identifiés comme spam et inversement. Par conséquent, nous voudrons peut-être intégrer un peu plus de fonctionnalités pour traiter les erreurs d’identification potentielles..

Si un message est identifié à tort comme étant du courrier indésirable, vous pouvez en informer Akismet, qui le traitera en conséquence. Vous pouvez également marquer un commentaire comme SPAM s'il tombe par le filtre Akismet. Lorsque vous implémentez les fonctionnalités suivantes, assurez-vous que les données de commentaire dans les variables sont définies dans le même format que ci-dessus..

La fonction

 $ akismet-> submitHam ();

peut être utilisé pour informer le service que le commentaire signalé comme spam est en fait correct.

Tant que la fonction

 $ akismet-> submitSpam ();

peut être utilisé pour notifier au service qu'un commentaire approuvé est en fait un spam.

Autres bibliothèques

PHP5 n'est pas pour tout le monde. Les bibliothèques Akismet ont également été créées dans une multitude d'autres langages. Voici quelques-uns des plus populaires:

  • Python
  • PHP4
  • Rubis sur rails
  • .NET 2.0

Tous ces éléments peuvent être facilement intégrés à vos projets de la même manière que celle décrite ci-dessus..

Implémentations populaires

Vous ne ressentez pas le besoin de lancer votre propre logiciel mais vous souhaitez tout de même utiliser Akismet? De nombreuses solutions existent déjà pour les logiciels de blog, de CMS ou de forum:

  • Invision Power Board
  • phpBB
  • Drupal
  • vBulletin
  • Moteur d'expression
  • et bien sur WordPress par défaut!

Fermeture

J'espère que ce guide servira d'introduction à certaines formes alternatives de lutte contre le spam. Un site sans spam semble non seulement plus professionnel pour les utilisateurs, mais est également beaucoup plus facile à gérer pour les administrateurs et les modérateurs.