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
Bonjour à tous,
J’ai plus de 1000 messages dument classés en spams
comment les supprimer pour de bon ?
Un grand merci !
Répondre à ce message
Bonjour
Est-ce que ce plugin peut aussi « protéger » les formulaires créés avec Formidable ?
Merci
Oui, ça fonctionne par défaut avec Formidable depuis février 2015.
Merci de votre réponse : je m’en était aperçu dans les dernières mises à jours
Répondre à ce message
Bonjour
NoSpam limite le nombre de caractères dans un commentaire et le tronque (environ 3000). comment changer ce réglage ? (la troncature disparaît quand je désactive nospam, donc c’est l’affichage qui est tronqué)
heu non, nospam ne limite pas la taille des messages. je viens de reverifier.
Curieux. La limitation doit venir d’ailleurs. Mais elle avait disparu avec la désactivation de nospam. 1.57 sous Spip 2.1.14
En revanche, en réactivant NoSpam (au passage merci infiniment pour cet outil) le message de commentaire n’a pas été retronqué.
Merci pour la réponse.
Répondre à ce message
Bonjour Cédric
Je t’écris pour te signaler que AntiSpam ne fonctionne plus du tout sur plusieurs de mes sites, et depuis quelques semaines.
Je suis inondé de SPAM pourris. Des petits malins on mis au point un processus automatique d’inscription et d’envoi automatique, qui passe au travers de antiSPaM malgré un contenu SPAM qui crève les yeux.
Je suis à ta dispo.
PS : j’ai installé un CAPTCHA provisoirement.
Deux exemples de messages reçus, cela ressemble à une mauvaise traduction automatique :
ou encore :
Ces messages contiennent un lien que je n’ai pas recopié évidemment.
Tous les SPAMS reçus sont de ce niveau. Aucun n’a été identifié comme SPAM.
Is sont envoyés par salve de 2 à 4 messages, avec un délai de 5min entre chaque message.
Et un délai de 2h environ entre salve.
Et cela, sur plusieurs de mes sites.
Tu veux dire que le site accepte les inscriptions, qu’un auteur est créé par le spammeur (automatiquement bien sur) ... puis qu’il vient commenter et spammer régulièrement (depuis des ips différentes bien sur) ?
C’est l’éternel jeu du chat et de la souris avec les spameurs, ils essayent des techniques pour contourner . Tu les marques comme spam à chaque fois ? nospam est bien à jour je suppose ?
C’est exactement cela.
Oui bien sûr.
Oui, 1.5.7
Pas facile ... la hantise d’un antispam c’est de bloquer un spam pas légitime ... Du coup normalement un utilisateur qui est connecté au site on lui fait plus confiance. C’est ce qui arrive dans ce cas là. Pas grand chose à faire pour l’instant, il faut attendre une mise à jour de nospam qui proposera une parade pour contrer ce cas d’usage.
Répondre à ce message
Bonjour,
Un petit effet de bord avec le plugin coloration syntaxique (observé sur forum.spip.net) :
Quand on poste du code php,
<cadre class='php'>
,coloration syntaxique génère des liens vers php.net quand il reconnait une fonction interne à php. Du coup on se fait modérer comme des malpropres. :(Si on pouvait configurer qq domaine autorisés ça serait plutot cool !
Répondre à ce message
Bonjour,
Cet anti-spam semble pratique pour protéger les adresses électroniques des robots.
Mais si on met ces deux lignes pour le formulaire « Contact libre » :
comment les rédiger pour le formulaire SPIP classique… ?
Merci d’avance.
vous voulez parler de
#FORMULAIRE_ECRIRE_AUTEUR
?Si j’en crois la doc,
$GLOBALS['formulaires_no_spam'][] = 'ecrire_auteur';
Heu, le formulaire Contact que l’on trouve à : /spip.php ?page=contact
C’est le même que celui pour écrire à l’auteur ?
si vous utilisez les squelettes par défaut de SPIP oui (je ne savais même pas que cette page existait !)
Si si, avec Sarka-Spip.
Merci ;)
je ne connais pas sarka-spip, il faut regarder quel est le formulaire appelé.
Cela dépend visiblement de votre configuration : soit
ecrire_auteur
, soitcontact
Sarka propose dans ses réglages :
• Formulaire du plugin « Contact Avancé »
ou
• Formulaire SPIP classique
J’ai coché ce dernier et j pencherais donc pour ’contact’
Merci ;)
Répondre à ce message
Bonjour, il y a un truc curieux avec NoSPAM
- parfois il laisse passer des spams contenant des liens commerciaux (ce qui en soit n’est pas trop grave, puisqu’à force de les signaler il finit par comprendre)
- mais ce qui est plus embêtant c’est que d’autres fois il modère automatiquement des messages contenant un lien... interne ! Et ce sans en informer le malheureux internaute qui croit que son message a disparu et qui retente trois ou quatre fois de le poster avant d’abandonner.
Le truc est-il connu ? Si oui, comment faire en sorte que sur un forum modéré a posteriori le plugin signale au moins à celui qui a posté le message, au moment de la validation, qu’il n’a pas disparu... mais juste été modéré automatiquement... et que le webmaster en sera informé ?
Merci par avance.
Répondre à ce message
Impossible de me servir de nospam
Fatal error : Call to undefined function : mb_strlen() in /mnt/130/sdb/3/8/gerardgreco/plugins/nospam/inc/detecter_langue.php on line 194
Salut, cette fonction est dispo à partir de PHP 4.0.6, quelle version de SPIP et PHP utilises-tu ?
Répondre à ce message
Bonjour
Je suis sous spip 2.1.23 et j’ai installé NoSPAM ainsi que l’interface d’administration des forums.
J’avoue que j’ai du mal à comprendre le fonctionnement du plugin car chaque semaine, via le plugin d’administration des forums, je signale comme spam des dizaines de messages ayant la même ip et la même adresse courriel...
Puis je les supprime...et...tout recommence la semaine suivante !
Que faut-il faire de plus ?
Bonjour
Tu es sur quel type de modérations ?
Tu as la dernière version du plugins ?
J’ai exactement le même problème : la semaine dernière j’ai patiemment coché « spam » quelque 200 messages proposés. Là, je viens de recevoir 68 messages issus de la même adresse IP en 4h d’intervalle (et je pense que ça va continuer).
J’ai NoSPAM 1.5.4
interface forums 0.1.0
SPIP 2.1.10
Je suis en modération a priori pour éviter de polluer mon site...
J’ai l’impression que le fait que je coche « spam » ne change rien, rien ne se fait automatiquement... Et faire cela chaque semaine sur des dizaines ou des centaines de messages, c’est... pénible ! Existe-t-il une solution ?
Et ça continue : depuis 36 heures, plus de 320 spam provenant d’une même adresse IP et même adresse mail. Je fais comment pour surnager ? En plus ça masque les vrais commentaires ?
Question subsidiaire : comment effacer définitivement tout ça pour éviter que ça ne prenne de la place sur le serveur ?
Merci d’avance !
Bonjour
Je verrais déjà à mettre à jour spip et tout les plugins.
Ensuite, quelle ip est ce ?
Je veux bien mettre à jour, mais j’ai quasiment la dernière version de nospam (celle de juillet) ; mettre à jour (version 1.5.5) va-t-il changer quelque chose ?
Voici mon spammeur du moment :
rabalybn@hotmail.com — IP 198.13.109.234
Hello,
il ne faut *pas* supprimer les messages marqués comme SPAM : le plugin a besoin de les avoir en base pour s’y référer et comparer l’IP de celui qui laisse un message avec l’IP des messages précédents repérés comme SPAM.
Par ailleurs, il y a normalement des dispositifs anti-flood qui bloquent les messages d’une même IP au delà d’un certain nombre dans les 5 dernières minutes, dans la dernière heure ou dans les dernières 2h. Mais possible qu’en envoyant un message toutes les 5 minutes le spammeur arrive à passer à travers…
Je peux regarder avec la chronologie exacte, au cas où.
Par ailleurs l’adresse IP que tu donnes est bien identifiée en SPAM compulsif par le dispositif de détection centralisée.
Je suppose donc que ton site est hébergé par Free ou un autre hébergeur qui ne permet pas à SPIP de récupérer la liste des IP en blacklist, du coup tu ne peux pas bénéficier de cette fonctionnalité qui est la plus efficace.
Dans ce cas il faut vraiment que tu conserves tes SPAM en base si tu veux avoir un peu d’efficacité.
C’est bien ce que j’avais compris, mais actuellement, j’ai l’impression que le plugin nospam ne fait absolument rien. J’ai 2056 messages classés spam par mes soins, le spam continue d’affluer dans les messages proposés, je dois cliquer sur chaque message un à un, je ne vois donc pas où se situe le boulot du plugin ?
Mon site est effectivement hébergé par free (snovae.free.fr). Comment récupérer la liste des IP en blacklist ?
L’objectif principal du plugin est d’éviter que les SPAM ne soient publiés, considérant alors que les spammeurs finissent par aller sur un autre site si aucun de leurs messages ne passent.
Dans le cas où tu utilises la modération a priori il est en effet beaucoup moins efficace, car il ne passe en SPAM que les messages qui sont clairement abusifs (on ne veut pas perdre un vrai message).
Il est plus méchant avec les IP détectées par le dispositif centralisé, car celui-ci est plus fiable (une IP vu sur N sites est de manière beaucoup plus certaine un spammeur), mais celui-ci ne peut pas marcher sur Free.
Si tu mets le plugin à jour en version 1.5.6, tu peux néanmoins utiliser la detection centralisée en téléchargeant manuellement http://nospam.spip.net/spamsignal.api/list et en enregistrant le contenu dans le fichier tmp/spamsignal-api-list.txt de ton site.
C’est un pis-aller mais on ne peut vraiment pas faire mieux chez Free.
OK, merci.
Dans mon cas, c’est donc plutôt le plugin d’admin des forums qu’il faudrait « améliorer », en permettant par exemple de sélectionner plusieurs dizaines ou centaines de messages simultanément (parce que cliquer un à un sur les + de 300 spams pour dire que c’est du spam... !!), je suppose.
Ce point a été amélioré dans SPIP 3 qui permet de la modération par lots.
Je t’encourage à mettre à jour ton site, car (sauf surprise) on ne fera plus d’évolution fonctionnelle sur ce point sur le plugin pour SPIP 2.
Merci pour tes réponses très utiles. Je vais donc m’atteler à mettre à jour mon site.
Répondre à ce message
Bonjour et merci pour cet excellent plugin.
Il me semblerait intéressant de disposer d’une page de configuration du plugin NOSPAM, qui comprendrait :
a) Le choix entre 3 niveaux de protections :
- les messages suspects sont marqués comme spam.
- les messages suspects ne sont pas enregistrés.
- l’ajout de message est temporairement désactivé sur l’ensemble du site.
b) Permettre de renseigner des expressions suspectes (filtrage sur mots clés). Cela éviterait d’installer le couteau suisse uniquement pour cela.
c) Autoriser ou non l’utilisation de code HTML dans les forums (par exemple, pour éviter que l’URL d’un lien soit différente de celle affichée).
d) Autoriser ou non l’utilisation de la blacklist d’IP (par exemple, dans le cas où l’hébergeur n’autorise pas SPIP a interroger le serveur de blacklist).
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 : |