Plugin Captcha2

Ajoute un cryptogramme visuel à vos formulaires pour les protéger du Spam

Attention ! Cette contribution modifie des fichiers du noyau de SPIP !

Même si elle a été testée par plusieurs utilisateurs nous ne pouvons garantir qu’il n’y aura pas d’effets secondaires dommageables sur votre SPIP. Conservez toujours les fichiers d’origine pour pouvoir revenir au noyau originel.

De plus, elle n’est compatible qu’avec une version précise de SPIP et sera perdue à la prochaine mise à jour : vous devrez donc recommencer.

Le Spam peut submerger votre site SPIP. L’une des alternatives est d’utiliser un systême de Captcha qui permet de se protéger assez efficacement des robots .

Présentation

La contribution Balise #CAPTCHA permettait une protection sommaire à base de redirection mais ne protégait pas véritablement des spammeurs. Ce plugin intègre le captcha directement dans vos formulaires.

Testé sur @-brest, ce plugin a permit d’éradiquer les spams sur les formulaires d’articles ou de suggestions de sites.

Installation

Le plugin s’installe classiquement : Installer un plugin-spip

Vous n’avez aucune modification à faire sur vos squelettes.
(sauf si votre squelette modifie les formulaires)

Aperçu en action

Le champs Captcha s’ajoute automatiquement à votre formulaire

Si le code est mauvais, on le signale à l’internaute

Si le code est bon, on peut poster définitivement le message

Filtrage des caractères exotiques

à partir de la version 0.15 (novembre 2008), on vérifie en plus si le message ne contient pas trop de caractères non ASCII (spams chinois, japonais, russe ou autre ...)

RBL (Realtime Blackhole List) : rejet des IPs blaclistées

à partir de la version 0.16 (janvier 2009), intégration du code RBL qui vérifie si l’IP n’est pas blacklistée.

Améliorations à venir

  • Ajoutant une configuration permettant de choisir la police, le type de captcha, la déformation, la couleur ....
  • Proposer un captcha audio pour l’accessibilité ?
  • Surcharger les autres formulaires pétitions, ...
  • Traduire les interfaces

Pour les développeurs, l’adresse du plugin sur la zone est http://zone.spip.org/trac/spip-zone...

Historique

versiondatecommentaires
v 0.16 janvier 2009 ajout des traits pour rendre le captcha plus efficace (merci à henri)

RBL (Realtime Blackhole List) (merci à Fil)

v 0.15 novembre 2008 ajout d’un filtre anti-caractères exotiques (chinois,japonaise, russe ...)
v 0.14 octobre 2007 sortie initiale sur spip-contrib

Fichiers surchargés (SPIP 1.9.2d)
balise/formulaire_forum.php
balise/formulaire_site.php
balise/formulaire_inscription.php
formulaires/forum.html
formulaires/site.html
balise/inscription.html

Discussion

54 discussions

  • Bonjour,

    j’utilise spip 1.9.2b avec quelques plugins (cfg, lecteur multimédia, spiplistes, formulaires et tables, lessiveuse et sauvegarde automatique). Lorsque j’ai voulu intégrer captcha2, j’ai rencontré un GROS problème : impossible de se reconnecter à l’espace privé. Le message obtenu était « identifiant inconnu ». Le problème a été réglé en supprimant le répertoire « plugins/captcha/ ».

    Avez-vous une idée de ce qui peut provoquer ce problème ? J’aimerais vraiment installer ce plugin génial qui m’éviterait de reprendre 5000 spams en provenance du Japon en deux semaines ;-) .

    Merci pour votre travail

    Renaud

    Répondre à ce message

  • Depuis le temps que je cherche ça ! J’étais à une 50tène de spam/jour, merci beaucoup à toutes les personnes qui ont fabriqué cet outil, je vous adore =).

    Hop, un petit lien vers votre site m’est obligatoire ;-), faudrait peut-être faire de la pub pour ce plugin, je cherche depuis plusieurs mois comment stopper l’invasion et c’est la première fois que je tombe sur votre page.

    Répondre à ce message

  • 2

    Bonjour,
    Captcha 2 est installé sur notre site et depuis c’est la tranquilité !

    Je suis en train de préparer le passage en Spip-2 et Sarka-3, et je travaille en local avec ZMWS.
    Après avoir ré-installé Captcha 2, l’accès s’est bloqué car mon IP est recensée en RBL. 403 Forbidden, 127.0.0.2 is listed in RBL (127.0.0.2).

    J’ai modifié le nom de rbl.php pour pouvoir reprendre la main.
    Qu’en pensez-vous ?

    • bizarre, pour désactiver RBL, le plus simple est d’éditer plugins/captcha2/plugin.xml
      effacer la ligne 36 : <options>rbl.php</options>

    • Merci,

      Je précise que l’IP est celle de mon serveur local (le logiciel ZMWS).
      Il est exact que cet IP est blacklisté pour des tas de bonnes raisons.
      C’est donc une coïncidence.
      Je n’activerais le plugin que lorsque j’aurais envoyé le tout sur le serveur hôte en FTP. Là il n’y a pas de raison qu’il soit sur une BL.

    Répondre à ce message

  • 1

    Bonjour,

    Je viens d’installer ce plugin sur un site multilingue. Je voudrais traduire les chaînes de caractères affichées par le plugin (notamment les messages d’erreur) dans les langues proposées par mon site pour les besoins des visiteurs non francophones. Comment dois-je m’y prendre ? Merci. GLG

    • Pour ajouter des langues au plugin, déposer vos fichiers de traduction dans le répertoire plugins/captcha2/lang/

      Pour l’instant, il y a 2 chaines à traduire plugins/captcha2/lang/captcha2_fr.php

      <?php
      
      // This is a SPIP language file  --  Ceci est un fichier langue de SPIP
      
      $GLOBALS[$GLOBALS['idx_lang']] = array(
        
        // E  
        'erreur_captcha'=>'Le CAPTCHA est incorrect. Veuillez le saisir de nouveau (votre navigateur doit accepter les cookies)',
        'erreur_captcha_charset'=>'Votre texte semble contenir des expressions non autoris&eacute;es'
       
      );
      
      ?>

      Merci de nous faire parvenir vos traductions pour rendre le plugin plus multilingue et faire profiter tout le monde !

    Répondre à ce message

  • 2

    Merci pour ce plugin qui a un peu protégé les forums d’un site particulièrement spammé.

    Certain spammeur arrivaient quand même à passer : j’ai tracé 3 traits sur l’image, ce qui semble avoir nettement amélioré l’efficacité !

    Il suffit de modifier le fichier : plugins/captcha2/create_image.php

    Vers la ligne 21, remplacer le bloc :

        ImageFill($image, 0, 0, $black);	     
        ImageString($image, 3, 30, 3, $security_code, $white); 
        ImageRectangle($image,0,0,$width-1,$height-1,$grey); 

    par :

        ImageFill($image, 0, 0, $black);
         imageline ( $image, 0, 0, $width/2, $height, $white);
         imageline ( $image, $width/3, 0, 2*$width/3, $height, $white);
         imageline ( $image, $width/2, 0, 3*$width/4, $height, $white); 
        ImageString($image, 5, 30, 3, $security_code, $white); 
        ImageRectangle($image,0,0,$width-1,$height-1,$grey); 

    Cordialement, henri

    • Merci pour ce plugin !
      Et merci pour la correction avec les 3 traits (preso, j’avais mis une elipse)

      Rémi.

    • merci pour la suggestion des lignes, le code des lignes est maintenant intégré dans le plugin de base. J’ai aussi intégré le blacklisting des IPs (Realtime Blackhole List) proposé par Fil

    Répondre à ce message

  • Bonjour, j’utilisais ce plugin avec une version 1.9.2e et j’ai voulu rajouter les plugins liés à l’API Google Maps et là, il y a visiblement une incompatibilité manifeste.
    Pour vérifier ce qui pouvait poser problème j’ai tout d’abord désactivé le plugin Captcha 2 puis j’ai activé 1 à 1 les plugins cfg / googlemap_api / gis. A l’issue de cette étape, en réactivant le plugin captcha 2, l’ensemble de mes plugins ont été désactivés.
    D’où cela peut-il venir ?
    Y a t il une réelle incompatibilité entre ces plgins ?
    Merci d’avance pour vos réponses.

    Répondre à ce message

  • Merci Erational pour la modif concernant la gestion des langues exotiques.
    Et merci aussi à henri pour l’ajout des 3 traits...

    Bonnes continuation !

    Répondre à ce message

  • Bruno Douville

    Bonjour. Merci pour cet outil fort utile. Il a fonctionné de manière efficace sur mon site quelques jours et bizarrement il me met maintenant systématiquement le message d’erreur « Le CAPTCHA est incorrect » Mon navigateur accepte les cookies. C’est un spip 1.9.2.c, un captcha 0.15
    Il fonctionnait, il y a quelques jours et aucune mise à jour ni changement de configuration n’a été fait depuis ! Très curieux.
    Avez vous une idée ? Merci de votre aide.

    Répondre à ce message

  • 1

    Bonjour,
    bravo pour ce plugin, bel effort !
    Je travaille sur un site collaboratif massivement multilingue, on y trouve du chinois, du russe etc... Donc la possibilité d’avoir des commentaires pertinants dans ces langues.

    Je voudrais savoir si il y a un moyen de désactiver la fonction qui rejette les commentaires en chinois (je ne l’ai pas trouvé).

    http://www.climatemediapartnership.org/

    merci encore !

    • pour désactiver la protection anti caractères exotiques (à vos propres risques ;)),
      éditer plugins/captcha2/balise/formulaire_forum.php à ligne 227 :

       else if (captcha2_ratio_ascii($texte)<0.5)       // surcharge plugin - FIXME integrer le ratio ds config

      par

       else if (captcha2_ratio_ascii($texte)<-1)       // surcharge plugin - FIXME integrer le ratio ds config

      à l’avenir, si le plugin continue à être utile et à se perfectionner, il faudra ajouter un panneau de configuration laissant le choix des options (activation d’un filtre exotique, filtre bayésien, blacklist, ...)

    Répondre à ce message

  • Salut, où peut on avoir ce plugin pour la version 1.9.1 de SPIP ?

    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 :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

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.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom