Le plugin introduit plusieurs mécanismes visant à limiter l’envoi de spams depuis les formulaires de SPIP (forums publics, formulaires de contact).
Un jeton périssable
Les formulaires se voient dotés d’un jeton périssable et lié à l’IP. Ce jeton empêche la réutilisation du même formulaire au delà de la durée de péremption, et rend ainsi le post automatique par robot plus compliqué.
Modération automatique dans les forums non modérés
Le but des spammeurs est de publier du contenu en ligne. Si les messages suspects sont modérés, l’intérêt du site diminue pour les attaquants qui iront voir ailleurs.
Le plugin utilise donc quelques règles de prudence pour modérer automatiquement les messages suspects.
Par exemple, si un message contient trop de lien, il est modéré automatiquement, voire mis à la poubelle (où il peut être repêché par le modérateur)
De même, si une adresse IP identique a déjà envoyé trop de messages consécutifs dans un laps de temps donné, les nouveaux messages sont automatiquement modérés.
Le plugin pourra être enrichi de nouveaux dispositifs au fur et à mesure de vos retours.
Ne cumulez pas !
Si vous voulez aider à améliorer l’efficacité de ce plugin avec vos retours, ne l’utilisez pas en même temps qu’un plugin captcha ou un autre plugin anti-spam.
Le but de ce plugin est de faire aussi bien ou mieux qu’un captcha, mais sans gêner l’internaute.
Vous avez encore du spam juste après l’avoir installé ?
Les spammeurs aimaient bien votre site ! Alors ils viennent voir avec leurs petites mains pourquoi leurs robots ne passent plus, et ils font des tentatives pour comprendre.
Laissez les faire, mais faites attention à bien déclarer "SPAM" les messages qui en sont. Vous verrez que très vite ils vont se décourager d’envoyer des messages qui ne sont jamais publiés !...
Pour déclarer un message en SPAM, utiliser le plugin Gestion forum
Protéger d’autres formulaires
Le plugin peut aussi protéger vos formulaires personnalisés avec son système de jeton. Pour cela, il suffit de déclarer votre formulaire dans la variable globale formulaires_no_spam, dans votre fichier mes_options.php (ou mon_plugin_options.php). Ici, par exemple, on déclare le #FORMULAIRE_CONTACT_LIBRE :
- // proteger le #FORMULAIRE_CONTACT_LIBRE
- $GLOBALS['formulaires_no_spam'][] = 'contact_libre';
Puis on utilise les fonctions d’analyse de NoSPAM dans la fonction vérifier() de formulaire_contact_libre.php.
- include_spip('inc/texte');
- // si nospam est present on traite les spams
- if (include_spip('inc/nospam')) {
- $caracteres = compter_caracteres_utiles($texte);
- // moins de 10 caracteres sans les liens = spam !
- if ($caracteres < 10){
- $erreurs['texte_message'] = _T('forum_attention_dix_caracteres');
- }
- // on analyse le sujet
- $infos_sujet = analyser_spams($sujet);
- // si un lien dans le sujet = spam !
- if ($infos_sujet['nombre_liens'] > 0)
- $erreurs['sujet_message'] = _T('nospam:erreur_spam');
- // on analyse le texte
- $infos_texte = analyser_spams($texte);
- if ($infos_texte['nombre_liens'] > 0) {
- // si un lien a un titre de moins de 3 caracteres = spam !
- if ($infos_texte['caracteres_texte_lien_min'] < 3) {
- $erreurs['texte_message'] = _T('nospam:erreur_spam');
- }
- // si le texte contient plus de trois lien = spam !
- if ($infos_texte['nombre_liens'] >= 3)
- $erreurs['texte_message'] = _T('nospam:erreur_spam');
- }
- }



Télécharger le plugin pour SPIP 2.0

Vos commentaires
# Le 20 août à 16:22, par Keev
Bonjour,
Tout d’abord, merci pour cette contrib.
Quelques questions, car je ne trouve pas ces infos dans le descriptif ci-dessus :
- Y a-t-il des choses à paramétrer une fois le plugin installé ?
- Les forums inclus de base (partie publique) sont protégés d’office ?
- Le plugin "Gestion Forum" est-il un pré-requis ?
- Y a-t-il d’autres plugins qui constituent un pré-requis à celui-ci ?
D’avance merci,
Keev
# Le 29 août à 22:46, par Keev
Bonsoir à tous,
Voici le message SPIP que j’obtiens en partie privée depuis l’installation du plugin “forum” dont il est fait référence dans cette page de présentation du plugin NoSPAM.
A noter que pour le moment je n’ai aucun message dans aucun forum.
D’où vient l’erreur ?
D’avance merci,
Keev
Répondre à ce message
# Le 19 août à 11:45, par equipement
Bonjour,
Je constate que NOSPAM n’arrête pas le spam massif.
J’ai posté plus de 20 messages (contenant chacun plus de 20 liens) en moins d’une heure et ils ont tous été enregistrés dans la table spip_forums.
J’ai examiné le code de la fonction nospam_pre_edition et le problème provient de la ligne suivante :
il suffit de remplacer dans cette ligne ’id_auteur’ par ’statut’ pour résoudre le problème.
En effet, lorsque l’on poste dans un forum, une session est crée avec en particulier dans le fichier créé dans tmp/session :
aussi comme cette variable globale est initalisée, la fonction isset (qui détermine si une variable est définie et est différente de NULL), renvoie la valeur true.
# Le 19 août à 13:05, par Cedric Morin
Bien vu, en effet. Je viens de corriger ce bug : http://zone.spip.org/trac/spip-zone...
# Le 19 août à 17:02, par equipement
Dans ce code de la fonction nospam_pre_edition :
il me semble qu’en ajoutant une parenthèse au début et une parenthèse à la fin, cela évite que seul le premier élément du "AND" soit pris en compte.
# Le 20 août à 13:11, par equipement
J’ai noté que la version 0.8.3 du plugin corrige ce bug.
Répondre à ce message
# Le 4 juin à 09:48, par Origenius
NoSPAM... c’est-à-dire « NoJAP » ?
Je me suis un peu cassé la tête pour comprendre pourquoi l’un de mes sites, exclusivement en japonais, n’acceptait aucun commentaires pour aucun article. J’ai cherché pendant plusieurs heures (mauvais code, problème de serveur, etc) jusqu’à ce que je décide de mettre à jour tous mes plugins avec leur dernière version : rien n’y faisait. Je les ai donc testés l’un après l’autre pour découvrir que seule la désactivation de NoSpam me permettait d’avoir accès à la publication des commentaires. Je m’interroge donc...
Oui je sais fort bien et j’en suis le premier malheureux que des robots japonais tentent de pourrir nos commentaires au delà du raisonnable. Et c’est contre eux que j’ai voulu aussi protéger mes sites, d’où l’utilisation de NoSPAM. Mais quand le moindre et innocent caractère japonais se voit sans autre forme de procès rejeté, je me demande si la solution dite de « facilité » ne consiste pas pour ce plugin à jeter le bébé avec l’eau du bain ; quelques pourriels en japonais justifieraient-ils le rejet pur et simple de la langue japonaise dans les paramètres de ce plugin ?
Ainsi, l’avantage multilingue pour lequel j’ai choisi SPIP prend un sérieux coup...
Je joins à ce commentaire une petite copie d’écran faite sur ce site (spip-contrib) qui utilise fièrement ce plugin pour illustrer mon propos.
Sayonara...
# Le 4 juin à 09:54, par Cédric
Bonjour,
le plugin ne repose absolument pas sur la présence de caractères type japonais ou autre pour détecter les SPAM, mais il semble qu’il y ait un bug sur le format d’une des expressions régulières, ou sur un traitement de chaine qui le fait ignorer ces caractères dans le comptage de la longueur du message.
C’est bien un bug qu’il faut corriger !
# Le 4 juin à 10:08, par Origenius
Merci pour votre prompte réponse et vos précisions qui me rassurent ! Si mon commentaire peut permettre de corriger un bug, ce sera une maigre contribution de ma part.
Pour compléter votre propos, il me suffisait d’écrire une dizaine de lettres latines pour que mon message puisse être prévisualisé et donc publié. Mais c’est ce que les commentateurs potentiels de mon site ne font jamais : ils écrivent dans leur langue maternelle... En conséquence, c’est peut-être simplement un problème de comptage de caractères comme vous le pensez.
Toutes mes excuses pour ne pas vous avoir remercié pour votre travail dans mon commentaire précédent. Si je peux me rattraper, même maladroitement...
Bien à vous
# Le 19 août à 22:44, par Cedric Morin
La version 0.8.3 du plugin corrige enfin ce bug. Désolé pour le délai.
Répondre à ce message
# Le 31 juillet à 23:33, par Kamran
Hello,
This plagin doesn’t work on my Farsi site. When I active it, I give this error :
Warning ! Your message needs to be at least ten characters in length.
The messages that I sent are more than 10 letters.
I think it was the first version of the plugin, in file nospam_pipelines.php I changed "$texte = trim(preg_replace(’,[\W]+,ims’,’ ’,$texte)) ;" to " $texte = trim(preg_replace(’,[\W]+,uims’,’ ’,$texte)) ;" and it worked. But after that I upgraded the plugin and I couldn’t find the line in that fine. It is in file nospam.php. But still I have the same problem.
# Le 31 juillet à 23:42, par Kamran
I use SPIP 2.1.1 [15871]
# Le 19 août à 22:43, par Cedric Morin
Version 0.8.3 of the plugin includes the correction of this bug.
Répondre à ce message
# Le 12 août à 18:17, par laurent
salut a tous
j’ai un petit soucis avec le plugin "suivi des forum" mentionné ici.
j’ai cherché la contrib pour y poster le soucis, mais pas moyen de trouver.
alors je m’en remet a vous.
lorsque le plugin "suivi des forum" est activé, il n’y a plus possibilité de poster sur le forum d’un article en privé. les commentaires sont enregistrer dans la partie publique seulement.
c’est peut etre simplement un choix de l’auteur, mais qui nous prive de forum privé sous les articles.
pouvez vous m’orienter vers la contrib de ce plugin ou faire suivre pour modif.
le lien vers la zone de ce plugin m’intéresserait aussi.
merci d’avance.
# Le 12 août à 19:04, par laurent
bon deja j’ai trouvé le lien de la zone : http://zone.spip.org/trac/spip-zone...
Répondre à ce message
# Le 26 mars à 11:09, par Eric02
Bonjour Cédric
J’utilise le plugin "formulaire de contact avancé", juste pour confirmation, le formulaire généré par ce plugin est bien à protéger, comme tu le precise plus haut ou fait il parti des formulaire protégés de base ?
Cordialement
eric
# Le 6 juin à 15:19, par Phil
Salut Eric,
- Tu crées un répertoire "formulaires" dans ton dossier squelette (s’il n’existe pas).
- Tu copies le fichier contact.php (qui se trouve dans le répertoire "formulaires" du plugin) dans ce dossier "formulaires".
- Tu l’édites et tu colles le code ci-après après la ligne 136 je crois (
$erreurs['nobot'] = 'Vous êtes un robot. Méchant robot.';)Le code :
//Config pour le plugin NoSpam// si nospam est present on traite les spams
if (include('./plugins/auto/nospam/inc/nospam.php')) //mettre le repertoire du plugin
{
include_spip('inc/texte');
$erreurs['nom'] = 'Erreur pour verif';
$caracteres = compter_caracteres_utiles(_request('texte'));
// moins de 10 caracteres sans les liens = spam !
if ($caracteres < 10){
$erreurs['texte'] = _T('forum_attention_dix_caracteres');
}
// on analyse le sujet
$infos_sujet = analyser_spams(_request('sujet'));
// si un lien dans le sujet = spam !
if ($infos_sujet['nombre_liens'] > 0)
$erreurs['sujet'] = _T('nospam:erreur_spam');
// on analyse le texte
$infos_texte = analyser_spams(_request('texte'));
if ($infos_texte['nombre_liens'] > 0)
{
// si un lien a un titre de moins de 3 caracteres = spam !
if ($infos_texte['caracteres_texte_lien_min'] < 3)
{
$erreurs['texte'] = _T('nospam:erreur_spam');
}
// si le texte contient plus de trois lien = spam !
if ($infos_texte['nombre_liens'] >= 3)
$erreurs['texte'] = _T('nospam:erreur_spam');
}
}
//Fin config plugin NoSpam
Chez moi cela fonctionne.
Cordialement
Phil
Répondre à ce message
# Le 31 mai à 22:32, par martin G
bonjour,
n’ayant que de très vagues notions en php, je trouve la doc assez sybilline :
Afin de protéger le formulaire_abonnement du plugin Spip-Listes, j’ai inséré dans mes_options.php les lignes suivantes comme indiqué plus haut :
J’aimerais maintenant suivre la seconde partie des instructions ci-dessus mais le fichier formulaire_abonnement.php ne comporte aucune fonction verifier()
Où dois-je insérer le code ?
merci
Répondre à ce message
# Le 6 mai à 22:35, par bb
Depuis quelques jours, les mails automatiques de spip (suivi éditorial et mail de contact) sont bloqués par mon serveur de messagerie (orange en l’occurrence). ces mails seraient identifiés comme porteur de spam.
j’ai installé le plugin "nospam" mais ça ne résoud pas le problème.
Auriez-vous un début de réponse à mon problème ?
merci beaucoup
# Le 6 mai à 22:47, par Cedric Morin
Le plugin NOSPAM protège ton site des réponses abusives des robots dans les forums.
Dans ton cas, il s’agit de ton fournisseur internet qui croit que SPIP est un spammeur, c’est donc le contraire.
Je pense que ton problème sera résolu en configurant un expéditeur pour les mails :
Menu "Configuration" > "Interactivité", cadre "Envoi de mails automatique" puis "Adresse email d’envoi"
# Le 6 mai à 22:55, par bb
Merci.
Malheureusement, ça ne change rien.
# Le 6 mai à 23:01, par Cedric Morin
Il faudrait savoir sur quel critère ces mails sont identifiés comme spams ...
# Le 6 mai à 23:23, par bb
voici le message renvoyé :
550 spam detected (in reply to end of DATA command)
# Le 6 mai à 23:30, par bb
je crois avoir trouvé la solution.
dans le Menu "Configuration" > "Interactivité", cadre "Envoi de mails automatique" puis "Adresse email d’envoi", j’avais mis l’adresse mail que j’utilise en tant que webmaster. En y faisant figurer une autre adresse mail : tout fonctionne correctement et les mails automatiques ne sont plus bloqués par les fournisseurs internet.
merci de ton aide
Si quelqu’un a une explication rationnelle à ce pb, je suis preneur !
Répondre à ce message
# Le 3 mai à 10:01, par filnug
Bonjour et merci pour ce plugin !
Petite question : est ce que l’activation du plugin protège automatiquement les formulaires générés par le plugin FORMS&TABLES ?
Merci
# Le 3 mai à 16:29, par Cedric Morin
Le plugin forms&tables intègre d’origine des mécanismes anti-spam qui le rendent peu sensibles à la soumission par robot.
# Le 3 mai à 16:36, par filnug
merci pour l’info !
Répondre à ce message
# Le 17 avril à 17:44, par jmax
toujours plein de spam asiatiques alors j’ai essayé le plugin Gestion de forums avec le lien indiqué dans l’article mais cela fait planter l’interface :-(
# Le 17 avril à 17:49, par Cedric Morin
Tu utilises bien SPIP 2.0 ?
# Le 17 avril à 17:54, par jmax
gloups, spip 1.9.2c
totalement désolé, j’étais pourtant bien sur
Répondre à ce message