Sur mes sites en SPIP, j’ai constaté que malgré l’installation du plugin noSpam et l’utilisation du bannissement d’adresses IP, certains spams parviennent encore à s’infiltrer. Après plusieurs tentatives pour renforcer la protection, j’ai découvert une parade provisoire efficace qui permet de bloquer les spams plus intelligents, souvent générés par des bots.
Voici comment procéder :
1. Téléchargez et installez le plugin Mot de passe dès l’inscription.
2. Modifiez le fichier suivant :
spip/plugins/auto/inscription_motdepasse[…]/inscriptionmotdepasse_pipelines.php
Repérez cette ligne dans le fichier :
function inscriptionmotdepasse_formulaire_verifier($flux){
if ($flux['args']['form'] == 'inscription'){
3. Puis, insérez le code suivant juste en dessous :
// Parade au spam plus malin encore by oli
$indice1 = "*****"; // par exemple, numéro de tél du spammeur envoyé dans le champ nom_inscription
$indice2 = "*****"; // par exemple, premiers sinogrammes du message saisi dans le champ nom_inscription
$nom_spammeur = (_request('nom_inscription'));
if (strpos($nom_spammeur, $indice1) !== false) {
header("Location: https://marreDuSpam.net");
exit();
}
if (strpos($nom_spammeur, $indice2) !== false) {
header("Location: https://marreDuSpam.net");
exit();
}
Dans ce code, remplacez les « ***** » par des séquences spécifiques que vous retrouvez fréquemment dans les spams envoyés à travers votre formulaire d’inscription. Les bots laissent souvent des indices récurrents dans leurs messages, comme des numéros de téléphone ou des sinogrammes répétitifs. En repérant ces motifs, vous pouvez rediriger automatiquement les spammeurs vers une page de rejet.
Une discussion plus détaillée sur cette solution est disponible pour ceux qui souhaitent approfondir cette approche.