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
J’ai été contraint de retirer NoSpam le lendemain de son installation : il empêchait certains des lecteurs de notre site de valider leur commentaire !
Je suis sous spip 2.0.2 et j’ai de nombreux plugins installés :
- Lecteur Multimédia en Flash (MP3,flv)
- le pluginABCalendrier : Mini-Calendrier
- le plugin Article PDF
- Barre Typo V2 pour 1.9.2 et suivantes
- cfg : moteur de configuration
- Le Couteau Suisse
- Crayons
- Enluminures typographiques pour 1.9.2 et suivantes
- Envoyer par mail
- Gravatar
- Interface adoucie
- Nuage
- Publication ouverte
- propaganda
- Rainette
- Social tags
- SPIP-Listes
- Splickrbox
- Thickbox v2
- Nombres de visiteurs connectés
A voir ici : http://www.auboisementcorrect.com
Quel était le message, le symptome, la version de navigateur ?...
Répondre à ce message
Bon, je suis déçu mais ça devait arriver un jour ou l’autre. Après avoir fonctionné pendant plusieurs mois, le plugin No-Spam ne fonctionne plus (ou du moins plus complètement) car je suis de nouveau spammé tous les jours sur mes forums.
J’ai pourtant mis à jour le plugin, mais, visiblement cela ne suffit plus.
Dommage, il m’avait bien servi mais il va bien falloir que je me résigne à mettre un captcha qui doit être, à priori, la seule méthode pour éviter ces spams pour l’instant.
ben non,
plutot que de te lamenter, donne plutot des infos sur la nature de tes spams !
Bonjour,
en fait les spams sont exactement les mêmes qu’avant alors que NoSpam avait bien fonctionné pour les empêcher.
J’ai l’impression que le problème vient du fait que le plugin était placé dans /plugins/auto et non pas dans /plugins.
Je viens de refaire une install classique (par FTP et pas par l’installation automatique) et je vais bien voir ce que cela donne.
Bien cordialement
Comprend bien que « mes spams sont exactement les mêmes qu’avant » ne m’aide pas beaucoup pour comprendre pourquoi le plugin ne les bloque plus.
Il faudrait me donner un accès à ton site pour que je vois la nature des spams, et, si il ne s’agit pas de spam manuel, comment faire pour les bloquer.
est-ce que tu peux m’en dire plus sur tes spams ?
Répondre à ce message
Par contre j’ai la même question qu’un message précédent : comment on fait pour effacer un spam une fois qu’il est détecté ?
Répondre à ce message
fonctionnement toujours impeccable malgré grosse pression (constatée à autres attaques, ou traces des spams reconnus et indiqués dans le forum)
vraiment immense merci (sites protégés : tiers livre & publie.net
Répondre à ce message
Une petite question.
Mon premier spam (depuis mon passage à spip 2) a bien été capté par le plugin et se trouve dans le suivi des forums, étiqueté comme (spam) ; excellent.
J’ai aussi le plugin corbeille, très utilisé avec spip 1.9.2 ;-)
Ma question : pourquoi ce spam n’apparait pas dans la corbeille pour que je puisse l’évacuer définitivement de la base ?
Je pensais à un dysfonctionnement de la corbeille, j’ai effacé un article pour voir mais il a bien atterri dans le corbeille !
Merci pour vos éclaircissements.
Florent.
Répondre à ce message
celui-ci aussi c’est un abonné de la pression spam, liens menant vers forum.banat-style.com et games.brg8.com ... si c’est la version longue NOSPAM les poubellise impec, la version courte ci-dessous semble encore passer... mais au moins, grâce à vous, on a le 1er mais pas les suivants !
Répondre à ce message
et après j’arrête, sinon je vais passer pour un spammeur : tous les liens sur spam de ce matin pointent vers http://www.beltal.com (mais j’irai pas acheter chez eux, même s’il y a de plein de vraies fausses Gibson et autres merveilles !)
Répondre à ce message
je mets en plus lisible ce spam chinois typique de ce que je reçois, celui-ci sans adresse d’envoi, mais ai constaté qu’elles changeaient tout le temps - dans la dernière grosse attaque c’était des trucs comme geo@yahoo.com kp@df.com ldk@qaw.com etc...
encore merci pour ce remarquable plugin
Répondre à ce message
cher Cédric Morin,
immense merci d’abord, parce que, quand je me suis aperçu que le système CAPTCHA ne fonctionnait pas en spip 2.0 j’étais vraiment embêté - gros site avec plusieurs bases ( http://www.tierslivre.net ), pas mal de commentaires, et au bout de 3 semaines le spam a commencé à débarquer, un matin y en avait 200 sur tous les articles... depuis que j’ai installé NOSPAM retour à la normale, et pourtant doit y avoir de la poussée derrière !
Juste pour vous donner copie d’écran de 2 qui ont passé dans les mailles ce matin - prêt bien sûr, si ça vous aide, à bêta-test ou manip, trop vital pour nous votre boulot !
Répondre à ce message
Bonjour,
Merci pour cette contrib !
Pour ma part, une amélioration qui rendrai le tout intéressant serait de supprimer automatiquement tous les messages qui ont plus de 1 an par exemple.
Je ne sais pas si cette fonctionnalité pourrait être pertinente pour vous, mais pour ma part, je serait ravis que certains forum de mon site bénéficient de cela (ou à défaut, tous les forum...)
Très bonne continuation,
Alain.
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 : |