Éviter le spam sur les sites perso

Les Pages Perso Chez Free

Par albert, le , dans Éviter les problèmes. / Dernière modification : le par Al.
Tags : Erreur 403, Fonction mail(), MySQL, PostgreSQL, Suspension, Spam, Sécurité, Tutoriaux

Les spammeurs ne se contentent pas de polluer nos boîtes de courrier électroniques : ils s'attaquent également à nos forums et nos blogs, car tout leur est bon pour faire passer leur « message », et les sites des personautes ne sont pas épargnés par les messages (en forum) et les commentaires ou rétroliens (des blogs)…

Avec pour effet de bord fort désagréable que les sites perso touchés peuvent se retrouver suspendus, et les tables de bases de données affectées détruites ! Que faire quand ça arrive ? Que faire pour que ça n'arrive pas ?

Ce billet est complété par un billet sur la protection des formulaires contre les robots spammeurs et par deux billets sur les méthodes d'envoi de courriels via les formulaires PHP : L'art et la manière d'envoyer des mails depuis les pages perso de Free… et Utiliser correctement les formulaires de contact sur les Pages Perso de Free.

Comment sait-on que son site est spammé ?

Deux signes indiquent que le site a été « traité », avec plus ou moins de violence :

  1. Version douce : à la visite du site, qui est toujours là, certaines parties des pages sont remplacées par des messages d'erreur sybillins tels que : WordPress database error: [Table 'machin' doesn't exist]…. Le message indique la table détruite, et la raison en est qu'elle contient du spam ;
  2. Version dure : le site est devenu inaccessible, le serveur renvoie une page indiquant une erreur 403. Là, pour avoir les détails, direction l'interface de gestion, qui confirmera (ou pas) que le site a été suspendu pour spam, et qu'une table a été détruite (mais il n'est pas dit laquelle).

La raison qui fait qu'un site est suspendu ou pas n'est pas connue (ou alors j'ai raté une réponse de l'admin dans proxad.free.services.pagesperso) mais on peut supposer que si les spams sont effectivement affichés sur le site, il y a destruction du spam et suspension du site, tandis que s'ils ne sont pas affichés, il y a seulement destruction.

Je risque d'avoir une table détruite même si je filtre les spams ?

Oui, parce que ce n'est pas le fait de présenter le spam aux visiteurs qui gêne Free le plus : c'est surtout l'occupation de bases de données que cela induit. Du coup, il ne suffit pas d'avoir un dispositif qui met les spams en quarantaine, car cela occupe toujours des ressources à chaque spam (et un spammeur qui réussit à poster des messages, des commentaires ou des rétroliens ne va pas se priver d'arroser large tant qu'il le peut, donc ça occupe beaucoup de ressources).

Bon. Comment faire pour éviter le spam ?

Comme toujours en matière de sécurité (car la lutte contre le spam en est une), il y a plusieurs actions à mener ensemble :

  • Ne pas autoriser les messages ou les commentaires venant de participants non inscrits ;
  • À l'inscription, utiliser des dispositifs assurant que l'inscrit n'est pas un robot de spam. Par exemple, une devignette (un captcha, quoi ; la majorité des gestionnaires de contenu dispose de fonctions ou de d'extensions permettant cela), et une validation de l'adresse e-mail par demande de réponse depuis celle-ci ;
  • Mettre à jour votre site à la dernière version du module de forum / blog lui-même, mais aussi des éventuels plugins ;
  • À ce propos : virer les plugins qui ne servent pas, et penser à désactiver les statistiques ;
  • Vérifier régulièrement qu'aucun spam n'a réussi à passer entre les mailles, et s'il y en a, les supprimer et chercher comment ils sont passés, au besoin en allant chercher de l'aide sur les forums consacrés à votre module de forum / blog, ou à défaut sur proxad.free.services.pagesperso.

Mise à jour : Les accès PHP à des ressources externes étant coupés, la grande majorité des systèmes antispam ne fonctionnent plus sur les Pages Perso de Free (Akimet, reCaptcha ne sont plus fonctionnels). Afin de protéger vos formulaires, vous devez utiliser des systèmes antispam fonctionnant sur des librairies et des scripts installés sur votre compte : CrypograPHP, AntispamBee pour Wordpress. Vous pouvez également vous référer à ce billet du site pour protéger efficacement les formulaires de vos pages dynamiques des spammeurs.

D'accord… Mais pour récupérer ma table ? et mon site ?

Pour la table, c'est fichu : elle a été détruite. Votre seule chance est d'avoir sauvegardé votre site régulièrement, et de rétablir une sauvegarde récente. N'essayez pas de restaurer seulement la table : c'est toute la base qui doit l'être ou rien.

Pour le site : demander la levée de suspension, et une fois l'accès récupéré, nettoyer les tables et durcir la configuration comme indiqué plus haut.

Et là, je serai tranquille ?

Non, pas vraiment : la lutte contre le spam est une course-poursuite avec les spammeurs, l'effort physique en moins (quoique). C'est pourquoi il est impératif de régulièrement tenir son site à jour pour combler les failles éventuelles et repérer les spams qui réussissent à passer outre… Mais cela fait partie des bonnes pratiques dont il faut prendre l'habitude quand on a un site perso :-) !

Amicalement,
Albert.