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
Après installation de gestion forum - j’ai « Fichier configurer_forum introuvable » pour la config
sinon deux erreurs dans le squelette(à l’ouverture d’un article - puis passage à l’espace privé)
Numéro message squelette boucle Ligne
1 Filtre #URL_DOCUMENT non défini ../plugins/forum/prive/listes/participer_forum_thread.html _doc 36
2 Filtre #URL_DOCUMENT non défini ../plugins/forum/prive/listes/participer_forum_thread.html _doc2 68
les mêmes erreurs de non définitions se répercutent aussi dans le squelettes globenews, que j’utilise
ici : cultureLLe
Que faut-il définir au juste ?
Merci et bonne soirée
Martin
Répondre à ce message
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
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
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.
Bien vu, en effet. Je viens de corriger ce bug : http://zone.spip.org/trac/spip-zone/changeset/39933
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.
J’ai noté que la version 0.8.3 du plugin corrige ce bug.
Répondre à ce message
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.
I use SPIP 2.1.1 [15871]
Version 0.8.3 of the plugin includes the correction of this bug.
Répondre à ce message
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.
bon deja j’ai trouvé le lien de la zone : http://zone.spip.org/trac/spip-zone/log/_plugins_/forum
Répondre à ce message
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
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 :
Chez moi cela fonctionne.
Cordialement
Phil
Répondre à ce message
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
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 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 »
Merci.
Malheureusement, ça ne change rien.
Il faudrait savoir sur quel critère ces mails sont identifiés comme spams ...
voici le message renvoyé :
550 spam detected (in reply to end of DATA command)
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
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 plugin forms&tables intègre d’origine des mécanismes anti-spam qui le rendent peu sensibles à la soumission par robot.
merci pour l’info !
Répondre à ce message
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 :-(
Tu utilises bien SPIP 2.0 ?
gloups, spip 1.9.2c
totalement désolé, j’étais pourtant bien sur
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 : |