Voici un petit tutoriel qui intéressera ceux qui administrent un forum sous phpBB 3.
Il arrive régulièrement que des failles soient découvertes dans le système d'inscription de phpBB.
Ces failles sont alors exploitées par des programmes spammeurs (comme Xrumer), qui en profitent pour créer des comptes et poster du spam (en russe ou en anglais) dans des quantités très importantes (genre 1000 topics/jour).
Ça a par exemple été le cas fin 2009 et début 2011 (le 4 janvier pour être plus précis) : une mise à jour de Xrumer lui a permis de décoder les captcha Recaptcha (un service de Google), et donc de s'inscrire sans aucun problème, et de commettre ses méfaits dans la foulée.
Du coup, on se retrouve avec un forum pourri de spam, obligé de fermer les inscriptions pour arrêter l'inondation, le temps de corriger le problème et de supprimer toute cette merde.
Seulement voilà, supprimer les posts/topics/utilisateurs un par un c'est long et terriblement chiant.
Alors j'ai mis au point pour l'occasion un petit script PHP qui supprime automatiquement le spam, juste en appuyant sur un bouton !
Le fonctionnement est assez simple :
D'un côté, j'ai créé un forum spécifique nommé "spam", fermé au public.
Le but du jeu va être de déplacer tous les topics de spam dans ce forum "spam".
Il est alors très facile d'identifier les spammeurs : un spammeur est un utilisateur qui est l'auteur d'au moins un topic dans le forum spam !
Et c'est justement le rôle de ce script : supprimer tous les utilisateurs du forum spam.
J'ai aussi ajouté une sécurité, un test qui vérifie avant de supprimer sauvagement l'utilisateur (et tous ses posts, pièces jointes, topics…) si tous les posts de cet utilisateur se trouvent dans le forum spam.
Si tel n'était pas le cas, on ne supprime pas l'utilisateur, on passe au suivant.
Vous pouvez télécharger le script ici :