Le plugin introduit plusieurs mécanismes visant à limiter l’envoi de spams depuis les formulaires de SPIP (forums publics, formulaires de contact, formulaires des pétitions).
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.
- 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). Les liens vers le site lui-même ne sont pas intégrés à ce compte. À partir de la version 1.6.0, on peut utiliser la constante NOSPAM_DOMAINES_AMIS
pour indiquer une liste de sites (séparés par une virgule) qui n’entrent pas non plus dans ce compte.
Par exemple, dans votre fichier mes_options.php
:
define ("NOSPAM_DOMAINES_AMIS", "spip.net, core.spip.org");
- 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.
- A partir de la version 1.2.0, le plugin se base aussi sur la langue du message pour affiner la modération, et compare également l’adresse IP du posteur avec une base actualisée en temps réel des IPs malveillantes [1]
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 !...
Avec SPIP 2.x, utiliser le plugin Gestion forum pour déclarer un message en SPAM.
Protéger d’autres formulaires - simple
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). N’oubliez pas de repasser par le panneau d’administration du plugin si vous avez ajouté un fichier 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';
Protéger d’autres formulaires - avancé
Si la protection simple n’est pas suffisante, plusieurs protections supplémentaires sont possibles :
Analyser le résultat saisi
Par exemple pour le plugin contact_libre, qui définit un formulaire de contact : la fonction ’vérifier’ de ce formulaire (définie dans le fichier formulaire_contact_libre.php) utilise les fonctions d’analyse de NoSPAM (définie dans le fichier inc/nospam.php du plugin nospam) :
include_spip('inc/texte');
// si nospam est present on traite les spams
if (include_spip('inc/nospam')) {
$caracteres = nospam_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 = nospam_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 = nospam_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');
}
}
Obfusquer les name du formulaire
C’est une méthode proposée par NoSpam qu’on peut activer au cas par cas en ajoutant une clé dans le tableau renvoyé par la fonction charger() du formulaire :
$valeurs['_nospam_encrypt'] = true;
return $valeurs;
Les valeurs possibles sont true
pour obfusquer tout sauf les name commençant par session_
ou 'all'
pour tout obfusquer.
A noter que cette option est aussi activable globalement pour tous les formulaire du site via un define dans le fichier mes_options.php
define('_SPAM_ENCRYPT_NAME', true);
S’assurer que l’internaute recharge la page avant de lancer l’action
La plupart des bots spammeurs se contentent de faire un POST
sans charger le résultat.
Pour éviter de faire une action en base de données déclenchée par un spammeur de ce type, il est possible de retarder l’action faite dans la fonction traiter()
du formulaire et de la faire déclencher par l’utilisateur uniquement si il affiche bien le message de succès et execute le Javascript de la page.
Pour cela on peut utiliser la fonction nospam_confirm_action_html()
de la façon suivante dans la fonction traiter()
include_spip('inc/nospam');
if (function_exists('nospam_confirm_action_html')) {
$html_confirm = nospam_confirm_action_html("mafonction", "Description", $args);
$res['message_ok'] .= $html_confirm;
}
else {
// ICI lancer normalement mafonction()
}
Pour simplifier son usage, l’utilisation de nospam_confirm_action_html()
est identique à celle de job_queue_add()
Discussions par date d’activité
137 discussions
Avec SPIP 2.1.12 et le plugin NOSPAM, je ne parviens pas à maitriser les spams sur une pétition. Sur un article j’ai une pétition (pétition activée et modération à priori) : cette pétition est l’objet de spams par centaines que je dois supprimer quasi tous les jours. Comment se fait-il que NOSPAM ne les bloque pas ?
Je tiens à suivre la recommandation de ne pas utiliser un CAPCHA avec SPIP mais j’aimerais que NOSPAM soit plus efficace. Y a-t-il quelque chose que je devrais faire ?
Merci pour toute info utile.
Salut, juste pour te filer un peu d’infos sur ce que fait nospam avec les pétitions :
Voilà le résumé, tout ceci se passe dans le fichier des pipelines de nospam ici :
http://zone.spip.org/trac/spip-zone/browser/_plugins_/nospam/nospam_pipelines.php?rev=58663#L128
Toutes ces conditions nécessitent peut être un ajustement ou l’ajout d’une nouvelle « barrière ». Quels sont les caractéristiques des spams qui « passent à travers » la barrière de nospam sur ton site ?
++
Les spams viennent quasi tous d’un serveur « enginecloud.net » avec un login toujours suggestif de pornographie et sans aucun commentaire.
Répondre à ce message
Bonjour,
J’ai récupére sous messages publics de l’article, bon nombre de messages identifiés comme (spam).
Sur le site il yb a le bouton Valider le message mais rien pour le supprimer.
Comment faut-il procéder ,
Merci
Répondre à ce message
Bonjour tout le monde,
J’utilise NoSpam avec le plugin Guestbook 2.1, mais il y a toujours autant de spam. :( Les spams ne semblent être modérés, ils sont tous en statut « proposé ».
En regardant le plugin Guestbook de plus près, tout ce qui est lié à NoSpam y est bien intégré (déclaration du formulaire, fonction vérifier)
Il est indiqué que si les spams persistent, il faut les signaler à l’aide du plugin « Gestion forum » mais comment peut-on signaler les spams du plugin Guestbook ?
J’ai fait de nombreuses recherches sur d’éventuels témoignages de l’utilisation du couple Guestbook/NoSpam mais en vain. Si quelqu’un a une petite piste, ou une explication (j’ai peut être zappé un truc au sujet de NoSpam ?), je vous en serai très reconnaissante. :)
Merci d’avance.
Répondre à ce message
Bonjour
je souhaite gerer les spams via le plugin gestion forum et NOSPAM
je vois bien le plugin NOSPAM mais gestion des forum est invisible dans la liste de plugins ?
J’ai oublié quelque chose ?
merci par avance
Répondre à ce message
(suite)
En fait, ces robots supposés ne se connectent pas trois fois par jours mais six fois, en général (je me trompais), et il doit être possible de repérer les sites touchés par des commentaires (non publicitaires et en anglais) qu’ils placent sur les sites sur lesquels ils ont jetés leur dévolu. J’ai d’abord eu droit à ce premier commentaire :
Il provenait de l’IP 81.25.45.63, située, je crois, en Biélorussie. Je l’ai effacé après avoir constaté qu’on en trouvait des dizaines de milliers d’exemplaires à travers le Web. J’ai alors eu droit, de la même IP, à ceci :
Idem, ce message se trouve sur une grande quantité de forums, à l’identique (mais j’en trouve beaucoup moins aujourd’hui qu’à l’époque, en juin). Je l’ai gardé quelques jours. C’est depuis ce temps-là (16 et 17 juin dernier) que j’ai chaque jour quelques-uns de ces « robots » qui se connectent chacun six fois sur mon site.
Très bizarre, non ?
Il ne faut pas effacer les message de SPAM, mais les déclarer comme SPAM, cela permet ensuite au plugin de reconnaitre lorsque ce même utilisateur revient et d’être plus sévère avec lui (en lui interdisant tout lien par exemple, ou en modérant automatiquement ses messages par précaution).
Quand aux visites automatiques sur ton site en provenance d’un même site, il s’agit de ce qu’on appelle du SPAM de referer (http://en.wikipedia.org/wiki/Referrer_spam). Si jamais tu affiche sur ton site public des statistiques concernant les visites ou les referers, cela permet au spammeur de récupérer automatiquement des liens vers son site.
Ah, merci beaucoup ! Je ne connaissais pas ce genre de spamming (et il m’était difficile de le deviner vu que je ne publie pas de statistiques de visites). Et comme, pour moi, il ne s’agissait pas à proprement parlé de spam, je n’ai pas pensé à classer les deux commentaires comme « spam ». Cela dit, je doute que cela résolve le problème, car il doit y avoir plusieurs IP à l’origine de ces nombreux site...
Répondre à ce message
Bonjour !
J’ai depuis quelques temps le même problème que Pamillet, et je parie que ce doit être le cas de pas mal de monde ! C’est effectivement essentiellement des « liens entrants » (« origine des visites ») en .ru, mais qui semblent venir de sites tout à fait ordinaires, en russe, traitant de n’importe quel sujet (d’après ce que j’ai pu en juger à l’aide d’un traducteur en ligne). Exemples : sedauka.ru, uadelo.ru, moykirov.ru, ournovosibirsk.ru... Les liens entrants se manifestent trois fois par jour en général. C’est donc très régulier et fait penser à l’action de robots. Mais il n’y a pas de spams, je suis déjà protégé par No Spam (et en suis satisfait). Alors, pourquoi ils reviennent ? Qu’est-ce qu’ils font là ? Et serait-il possible de les interdire d’accès ?
Sur de petits sites comme le mien, ayant peu de vrais visiteurs, ils rendent l’interprétation des statistiques mal aisée (et quelque peu déprimante), en plus d’utiliser inutilement de la bande passante...
Si quelqu’un de compétent pouvait se pencher sur cette question qui, à mon avis, concerne pas mal de monde...
Merci d’avance à celle ou celui-là !
Répondre à ce message
une suggestion..
je constate que des sites commerciaux, notamment pornos, se retrouvent dans mes statistiques et font grimper un article dans les statistiques (article sans rapport avec leur activité !)
Ce n’est pas du spam... rien dans les forums, mais leur lien se retrouve dans les stats... et les pervertissent.. Et je me retrouve avec des dizaines de sites (presque tous en .ru) dans mes stats... Pourtant, rien de russe dans l’article...
Serait-il possible de les bloquer, en tout cas de les exclure des stats ?
ce n’est peut-être pas une question techniquement pour nospam... mais ca me semble relever du même besoin fonctionnel...
Répondre à ce message
Bonjour,
Merci pour ce plugin très efficace. :-)
Je tente de déterminer si Spip est prêt pour l’IPv6. A priori, c’est bon pour Spip natif.
Je m’interroge sur les plugins. Parmi eux, à ma connaissance, seul NoSPAM serait impacté : il utilise une fonction nospam_hash_env() qui, si je ne m’abuse, transforme les IPv4 de type aaa.bbb.ccc.ddd en aaa.bbb.ccc.XXX
La compatibilité IPv6 est-elle « prévue », ou pas encore à l’ordre du jour ?
PS : plus généralement, je n’ai pas trouvé de discussions/synthèse de l’impact d’IPv6 sur Spip et ses plugins. Si quelqu’un a des précisions à ce sujet, je suis preneur !
Répondre à ce message
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...
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 !
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
La version 0.8.3 du plugin corrige enfin ce bug. Désolé pour le délai.
Merci, ça fonctionne bien désormais ! Super
Répondre à ce message
Bonjour
ce plugin est-il également fait pour les formulaires liés aux pétitions et à l’abonnement aux listes de diffusion ?
J’utilise spip 2, et je viens de lire que les balises captcha sont désormais inutiles grâce à ce plugin. Sauf que je lis en même temps que ce plugin concerne plutôt le forum...
bonjour, j’ai la même question que Charlotte... Merci. Jc
Bonjour,
le plugin est effectivement fait pour filtrer les spams sur les forums.
Pour tout ce qui concerne les autres formulaires, je pourrais généraliser le système de jetons temporaires, qui permettent d’éviter que les robots ne remplissent le formulaire automatiquement. En revanche, le reste du filtrage est pertinent dans le cas ou il y a du contenu, mais pas sur un formulaire de type abonnement à une liste.
Vous rencontrez des problèmes de spam sur ce type de formulaire aussi ?
Bonjour,
J’utilise ces 2 plugins pour mes forums et ça fonctionne parfaitement... Merci pour cette contrib.
Mais je fais remonter cette discussion car j’ai publié une pétition qui est la cible de robots spammer. Comment puis-je utiliser le plugin nospam et l’interface de gestion des forums sur les pages équivalentes dédiées aux pétitions ?
Merci d’avance...
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |