Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Galerie] Réalisation de CAPTCHAs

On veut les votres

    25 juillet 2007 à 2:48:04

    Bonjours les zéros.

    Pour commencer, c'est quoi un captcha??


    Citation : Wikipédia

    Un Captcha est une forme de test de Turing permettant de différencier de manière automatisée un utilisateur humain d'un ordinateur.


    En d'autre mots un captcha c'est l'image un peu bizard qu'on a dû remplir déchiffrer et recopier pendant notre inscription sur le SDZ.
    En passant voici un captcha générer par le sdz :
    Image utilisateur

    Vous me direz à quoi celà peut bien servir?
    Je vous répondrez pour ne pas laisser les bots qui jonchent le web, vous pourrir la vie avec des pubs pour acheter du Viagra à -30% en Tchécoslovaquie
    Merci à DeadPixel pour ce merveilleux exemple j'aurais pas trouvé mieux :p


    Il y a sur ce site plusieurs tutoriels qui explique comment faire des captcha simple et rapide.
    Ces captchas sont très efficace pour les petits sites, et sont très rapides à générer, mais là n'est pas le problème car le défit s'intéresse plus à la beauté de ces images, qu'à leurs efficacités.

    Le défie


    Le défie consiste à ce que vous poster votre captchas en faisant bien attention à mettre l'image que génère le captcha. Votre code devras bien sûr être clair et bien commenté.
    Il est interdit de poster ici des captchas telecharger sur d'autre site! Vous pouvez par contre vous aider de tutos pour les faire.

    Quelle sont les règles?


    Tout les coups sont permis. Vous pouvez utilisez n'importe quelle version de PHP ou de GD.

    Je n'ai pas encore atteint le cours de m@teo21 sur la manipulation d'image, je quitte le post c'est ça? :'(


    Mais no, je demanderais aussi à ceux qui ne font que passer, de prendre le temps de noter sur 20 les captchas qu'ils voient sur ce post.
    Ils pourront aussi utiliser ces captchas pour leurs sites, raison pour laquelle le code doit être bien commenté. :)

    Pour vous aider


    Voici quelque liens bien utiles pour la création de telles images:
    En savoir plus sur les captchas sur Wikipedia
    Créer une image de validation de DeadPixel
    Faire une image anti-bots facilement de Kermi

    Si j'en ai oublié faite le moi savoir par MP.
    Sinon pour les liens externe, il y a Google :D .

    au passage je vous largue mon première essais :

    1. <?php
    2. //***********************
    3. //**Création de l'image**
    4. //***********************
    5.         //Je définie d'abord la taille de l'image
    6. $width=110;
    7. $height=40;
    8.         //Ensuite je l'a crée
    9. $image=imagecreatetruecolor($width,$height);
    10.         //L'image de font avec la couleur $couleur1
    11. $couleur1  = imagecolorallocate($image, $rouge=rand(0,255), $vert=rand(0,255), $bleu=rand(0,255));
    12. imagefill($image,0,0,$couleur1);
    13. //***************************
    14. //**Création des caractères**
    15. //***************************
    16.         //Ensuite vient la couleur des caractères $couleur2 qui est fonction de $couleur1
    17. $couleur2= imagecolorallocate($image,255-$rouge,255-$vert,255-$bleu);
    18.         //Mon script génere à chaque fois un nombre de caractere
    19. $nbr_caractere=rand(5,7);
    20.         //Chaque caractère auras une taille à lui en 14 et 18 point
    21. $taille_char_min=14;
    22. $taille_char_max=18;
    23.         //Ca se sont les caractères autorisés. J'ai enlevé I, J, O, Q, S, U, V, 0, 1 et ce pour leur faible lisibilitée
    24. $char_autorise = 'ABCDEFGHKLMNPRTWXYZ234569';
    25.         //La distance entre le bord et le premier caractère
    26. $x = 4;
    27.         //L'espace entre les caractères
    28. $inter_space = 18;
    29. //*************************************
    30. //**Boucle d'affichage des caractères**
    31. //*************************************
    32. $i=0;
    33. while($i<$nbr_caractere)
    34.         {
    35.         //A chaque caractère ses paramètres propre à lui
    36.         $caractere_setting[$i]['caractere']=$char_autorise{rand(0,strlen($char_autorise)-1)};
    37.         $caractere_setting[$i]['taille']=rand($taille_char_min, $taille_char_max);
    38.         $caractere_setting[$i]['angle']=rand(-20,20);
    39.         //Et voilà la fonction que j'utilise : "imagettftext" que j'ai bien cherché et qui est plus adapté pour ce job que "imagestring".
    40.         imagettftext($image,$caractere_setting[$i]['taille'],$caractere_setting[$i]['angle'],$x,30,$couleur2,'ELECHA.TTF',$caractere_setting[$i]['caractere']);
    41.         $x+=$inter_space;
    42.         $i++;
    43.         }
    44. //********************************************************
    45. //**Sauvegarde de l'image dans le fichier "captcha.png"**
    46. //********************************************************
    47. imagepng($image, "captcha.png");
    48. ?>

    Il faudra mettre au coté de ce script la police de caractère ELECHA.TTF telechargeable ici.
    Ce script génère des images comme ceci
    Image utilisateur


    Tous les captchas du post
    Créateur Captcha génerer
    tnsaad Image utilisateur
    Vizigr0u Image utilisateur
    wonerz Image utilisateur
    tnsaad Image utilisateur
    salegoss Image utilisateur
    OctetsMotion Image utilisateur
    Blackhole Image utilisateur
    jaye Image utilisateur
    bilou89 sans aperçue
    wonerz Image utilisateur
    jaye Image utilisateur
    mwsaz Image utilisateur
    istu5 Image utilisateur
    K-jasi Image utilisateur
    gierschv Image utilisateur
    Chaoxys Image utilisateur
    Stax Image utilisateur


    Après celà je n'ai plus qu'à vous souhaiter bonne chance, et bon captchage... ;)
    • Partager sur Facebook
    • Partager sur Twitter
      25 juillet 2007 à 3:29:18

      Bonjour, voici à quoi ressemblent mes captcha ;)
      Image utilisateur

      Le code source est :
      <?php
      session_start();

      $longueur_code = 6;
      $lettres = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789';
      $longueur = strlen($lettres);
      $code = '';
      $largeur = 300;
      $hauteur = 50;

      $police = array('trebuc.ttf', 'tahomabd.ttf', 'verdanab.ttf');
      $image = imagecreatetruecolor($largeur, $hauteur);
      $fonce = imagecolorallocate($image, mt_rand(0, 70), mt_rand(0, 70), mt_rand(0, 70));

      //lignes "horizontales" sur le fond
      for($i = 0; $i < 6; $i++)
      {
              $couleur_ligne = imagecolorallocate($image, mt_rand(150, 255), mt_rand(150, 255), mt_rand(150, 255));
              imageline($image, 0, mt_rand(0, $hauteur), $largeur, mt_rand(0, $hauteur), $couleur_ligne);
      }

      //lignes "verticales" sur le fond
      for($i = 0; $i < 6; $i++)
      {
              $couleur_ligne = imagecolorallocate($image, mt_rand(150, 255), mt_rand(150, 255), mt_rand(150, 255));
              imageline($image, mt_rand(0, $largeur), 0, mt_rand(0, $largeur), $hauteur, $couleur_ligne);
      }

      $x = mt_rand(2,20);
      for($i = 0; $i < $longueur_code; $i++)
      {
              $lettre_ajouter = $lettres[mt_rand(0,$longueur-1)];
              $code .=  $lettre_ajouter;
              $angle = mt_rand(-25, 20);
              $taille_police = mt_rand(25,35);
              $hauteur_police = ($hauteur / 2) + ($taille_police/2);
              $couleur_texte = imagecolorallocate($image, mt_rand(150, 255), mt_rand(150, 255), mt_rand(150, 255));
              imagettftext($image, $taille_police, $angle, $x, $hauteur_police, $couleur_texte, realpath($police[array_rand($police)]), $lettre_ajouter);
             
              $x += 1.2 * $taille_police + mt_rand(0,2);
      }


      $_SESSION['code'] = $code;

      header('Content-type: image/png');
      imagepng($image);
      imagedestroy($image);
      ?>


      Bon en gros une fois qu'on a codé un captcha acceptable, à moins qu'on reçoive la visite d'une paire de bots, on y reviens plus vraiment. Je sais que le mien par a l'avantage d'être bien lisible pour un humain mais le défaut qu'un programme pourrait éventuellement "facilement" détourer les lettres et les analyser étant donné que la couleur de slettres est presque forcément différente de celle du fond. Comme j'utilise en plus des polices génériques...
      Mais comme je l'ai dit : tant qu'on est pas embêté par des bots, autant ne pas recoder un captcha tous les 4 matins...

      Edit : d'ailleurs en fait mes lignes du fond ne servent à rien puisqu'elles ne sont pas de la même couleur que les lettres :p, c'est juste plus chiant à lire en fait :D
      • Partager sur Facebook
      • Partager sur Twitter
        25 juillet 2007 à 3:54:52

        Voilà mon premier code qui date d'aujourd'hui:
        <?php
        //On crée la session avant tout
        session_start();

        header ("Content-type: image/png");

         ############################
        ### CREATION IMG ALEATOIRE ###
         ############################
         
        $image = imagecreate(200,50);

        //taux RVB aléatoires
        $R=mt_rand(0,255);
        $V=mt_rand(0,255);
        $B=mt_rand(0,255);

        //couleur des caracteres (négatif par rapport au fond)
        $R_n=255-$R;
        $V_n=255-$V;
        $B_n=255-$B;

        //génération d'un code aléatoire
        $alph=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','1','2','3','4','5','6','7','8','9');
        $code='';
        while( strlen($code) < 7 )
        {
           $code .= $alph[mt_rand(0, 60)];
        }

        //génération de coordonnées aléatoires
        $x=mt_rand(0,140); #horizontalement
        $y=mt_rand(0,35)#verticalement

        //Application
        $couleur = imagecolorallocate($image, $R, $V, $B); #couleur du fond
        $couleur_n = imagecolorallocate($image, $R_n, $V_n, $B_n); #couleur du code
        ImageLine ($image, mt_rand(0, 140), mt_rand(0, 35), mt_rand(0, 140), mt_rand(0, 35), $couleur_n); //1er trait
        ImageLine ($image, mt_rand(0, 140), mt_rand(0, 35), mt_rand(0, 140), mt_rand(0, 35), $couleur_n); //2eme trait
        ImageLine ($image, mt_rand(0, 140), mt_rand(0, 35), mt_rand(0, 140), mt_rand(0, 35), $couleur_n); //3eme trait
        ImageLine ($image, mt_rand(0, 140), mt_rand(0, 35), mt_rand(0, 140), mt_rand(0, 35), $couleur_n); //4eme trait
        imagestring($image, 4, $x, $y, $code, $couleur_n); #Code de l'image

         #########################
        ### FUSION AVEC UN FOND ###
         #########################
         
        //Chargement des images
        $source = imagecreatefromgif("fond".mt_rand(1,4).".gif");
        $destination = $image;

        //Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
        $largeur_source = imagesx($source);
        $hauteur_source = imagesy($source);
        $largeur_destination = imagesx($destination);
        $hauteur_destination = imagesy($destination);

        //Calcul du placement de la source dans la destination
        $destination_x = $largeur_destination - $largeur_source;
        $destination_y = $hauteur_destination - $hauteur_source;

        //Application
        imagecopymerge($destination, $source, $destination_x, $destination_y, 0, 0, $largeur_source, $hauteur_source, 60);

        //Affichage
        imagepng($destination);

         #######################
        ### PLACEMENT DU CODE ###
         #######################
         
        $_SESSION['code_img'] = $code;
        ?>

        Resultats:Image utilisateurImage utilisateurImage utilisateur...
        Me manque juste une police quand même..
        • Partager sur Facebook
        • Partager sur Twitter
          25 juillet 2007 à 12:44:41

          Ils sont super beau vos captchas vraiment.
          J'aime bien le tient vizigrou.
          Le tient aussi n'es pas mal du tout wonerz, mais sa serais mieu si les caractères se trouvais au milieux de l'image, sinon les motifs à gauche ne serverait pas à grand chose.

          Citation : Vizigr0u


          Bon en gros une fois qu'on a codé un captcha acceptable, à moins qu'on reçoive la visite d'une paire de bots, on y reviens plus vraiment.


          Comme je l'ai dis, ce post est plus une galerie de création de captchas, ce n'es pas forcément une arsenal de défense que nous sommes en train de montrer.
          Et comme tu l'as dis on ne s'amuse pas à codé un captcha tous les jours.
          C'est justement la raison pour laquelle j'ai mentionné le mot défis.
          Et des défis sur le SDZ sa peut être ou bien un labyrinthe à construire et à le solutionner, ou trouver un algorytme pour solutionné un sudoku.
          Cela ne sert pas à grand chose, mais sa nous permet de nous exercer et de nous échanger des idées sur la façon de consevoir de tels algorhytme.
          Et voilà à vous maintenant de nous génerer vos plus beau captchas ;)
          • Partager sur Facebook
          • Partager sur Twitter
            7 août 2007 à 18:52:06

            Comment on peut récupéré le code dans l'image dans le captcha de tnsaad ??

            J'ai cherché, mais je n'ai pas trouvé...
            • Partager sur Facebook
            • Partager sur Twitter
              7 août 2007 à 19:03:16

              Ben ta qu'a copier et coller le code que j'ai donné dans un fichier *.php, telecharger la police de caractère et la mettre dans le meme emplacement que ton fichier php, et lancer le fichier grâce à easyphp ou a wamp.
              Après que tu ai exécuter ton fichier, cela génère une image captcha.png,
              qui se situe dans le même emplacement de la police de caractère et du fichier php.
              Une fois que tu ai réussie tout ça dis le moi je te montrerais comment l'installer sur ton site ;)
              • Partager sur Facebook
              • Partager sur Twitter
                7 août 2007 à 19:05:35

                sa y est j'ai fais tout ça, l'image est généré et affiché
                • Partager sur Facebook
                • Partager sur Twitter
                  7 août 2007 à 19:53:00

                  Ok
                  Alors maintenant tu upload la police de caractère sur ton site, et au lieu du code en haut tu crée un fichier nomé crypt.php où tu met ceci :
                  <?php
                  session_start(); // Créér la session



                  //***********************
                  //**Création de l'image**
                  //***********************
                         
                          //Je définie d'abord la taille de l'image
                  $width=110;
                  $height=40;
                          //Ensuite je l'a crée
                  $image=imagecreatetruecolor($width,$height);
                          //L'image de font avec la couleur $couleur1
                  $couleur1  = imagecolorallocate($image, $rouge=rand(0,255), $vert=rand(0,255), $bleu=rand(0,255));
                  imagefill($image,0,0,$couleur1);

                  //***************************
                  //**Création des caractères**
                  //***************************

                          //Ensuite vient la couleur des caractères $couleur2 qui est fonction de $couleur1
                  $couleur2= imagecolorallocate($image,255-$rouge,255-$vert,255-$bleu);
                          //Mon script génere à chaque fois un nombre de caractere
                  $nbr_caractere=rand(5,7);
                          //Chaque caractère auras une taille à lui en 14 et 18 point
                  $taille_char_min=14;
                  $taille_char_max=18;
                          //Ca se sont les caractères autorisés. J'ai enlevé I, J, O, Q, S, U, V, 0, 1 et ce pour leur faible lisibilitée
                  $char_autorise = 'ABCDEFGHKLMNPRTWXYZ234569';
                          //La distance entre le bord et le premier caractère
                  $x = 4;
                          //L'espace entre les caractères
                  $inter_space = 18;

                  //*************************************
                  //**Boucle d'affichage des caractères**
                  //*************************************
                  $i=0;
                  $code=NULL;
                  while($i<$nbr_caractere)
                          {
                          //A chaque caractère ses paramètres propre à lui
                          $caractere_setting[$i]['caractere']=$char_autorise{rand(0,strlen($char_autorise)-1)};
                          $caractere_setting[$i]['taille']=rand($taille_char_min, $taille_char_max);
                          $caractere_setting[$i]['angle']=rand(-20,20);
                          //Et voilà la fonction que j'utilise : "imagettftext" que j'ai bien cherché et qui est plus adapté pour ce job que "imagestring".
                          imagettftext($image,$caractere_setting[$i]['taille'],$caractere_setting[$i]['angle'],$x,30,$couleur2,'ELECHA.TTF',$caractere_setting[$i]['caractere']);
                          $x+=$inter_space;
                                  $code .=$caractere_setting[$i]['caractere'];
                          $i++;
                          }
                  //********************************************************
                  //**Sauvergarde de l'image dans le fichier "captcha.png"**
                  //********************************************************
                  $_SESSION['code']=$code;

                  header('Content-type: image/png');      // On définit le type de fichier
                  header('Cache-Control: no-store, no-cache, must-revalidate');   // L'image ne doit pas être enregistrée dans le cache, puisqu'elle va être changée à chaque fois. Une très belle astuce que j'ai trouvé sur un tuto
                  imagepng($image);
                  imageDestroy($image); // Détruire l'image
                  ?>


                  Ce n'est pas finie,
                  il faut que tu mette ceci dans la page où tu veux que l'image soit affiché:
                  <?php
                  session_start();
                  //Il est impératif que tu commence ta page avec session_start et ne metre rien avant sinon sa marche pas.
                  ?>

                  <!--Tu met içi tout ton HTML, ton javascript, ton php toute ta page quoi-->


                  <?php
                  //tu met ce code là où tu test si la valeur de ton captcha est bien celle entrer par l'utilisateur. Le nom de l'input où l'utilisateur écris le code doit s'appeller "code_verif"
                  if($_POST['code_verif']==$_SESSION['code'])
                  {
                  echo '<p>Votre code est juste'
                  }
                  else
                  {
                  echo '<p>Votre code est faux'
                  }
                  ?>

                  <!--Tu met ça là où tu veut afficher ton image. Bien sûr faut que ce soit entre des balises form, et que tu prévois un bouton submit pour l'envoie-->
                  <img src="crypt.php" /><input type="text" name="code_verif" />


                  <!--Ici si tu continue à mettre se que tu veux -->
                  • Partager sur Facebook
                  • Partager sur Twitter
                    7 août 2007 à 19:54:41

                    cool ce topic :)
                    je vais tenter d'en faire un, enfin moi et GD on s'aime pas trop même si j'ai déjà fait quelques trucs avec, ça va être marrant :p
                    enfin, de quoi occuper ma soirée... ^^
                    • Partager sur Facebook
                    • Partager sur Twitter
                      7 août 2007 à 20:09:14

                      Nous attendons ton captchas avec impatience salegoss.
                      Si vous pouviez créé des captchas qui soit testable en local sa serais le top, sans session ni rien.
                      Merci
                      • Partager sur Facebook
                      • Partager sur Twitter
                        7 août 2007 à 20:22:09

                        ok merci beaucoup pour ton aide !

                        Si j'ai un autre problème, je reviens poster ici

                        @++
                        • Partager sur Facebook
                        • Partager sur Twitter
                          7 août 2007 à 20:50:55

                          J'ai fais un autre captcha dont je vous fait part :
                          <?php
                          //***********************
                          //**Création de l'image**
                          //***********************
                                 
                                  //Je définie d'abord la taille de l'image
                          $width=100;
                          $height=30;
                                  //Ensuite je l'a crée
                          $image=imagecreatetruecolor($width,$height);
                                  //L'image de font avec la couleur $couleur1
                          $couleur1  = imagecolorallocate($image,255,255,255);
                          imagefill($image,0,0,$couleur1);

                          //***************************
                          //**Création des caractères**
                          //***************************
                                  //Mon script génere à chaque fois un nombre de caractere (4)
                          $nbr_caractere=4;
                                  //Chaque caractère auras une taille à lui en 14 et 18 point
                          $taille_char_min=14;
                          $taille_char_max=18;
                                  //Ca se sont les caractères autorisés. J'ai enlevé I, J, O, Q, S, U, V, 0, 1 et ce pour leur faible lisibilitée
                          $char_autorise = 'ABCDEFGHKLMNPRTWXYZ234569';
                                  //La distance entre le bord et le premier caractère
                          $x = 4;
                                  //L'espace entre les caractères
                          $inter_space = 25;

                          //*************************************
                          //**Boucle d'affichage des caractères**
                          //*************************************
                          $i=0;
                          while($i<$nbr_caractere)
                                  {
                                  //A chaque caractère ses paramètres propre à lui
                                  $caractere_setting[$i]['caractere']=$char_autorise{rand(0,strlen($char_autorise)-1)};
                                  $caractere_setting[$i]['taille']=rand($taille_char_min, $taille_char_max);
                                  $caractere_setting[$i]['angle']=rand(-25,20);
                                  $caractere_setting[$i]['couleur']=imagecolorallocate($image,$rouge=rand(0,255), $vert=rand(0,255), $bleu=rand(0,255));
                                  //lignes "verticales" sur le fond
                                          $couleur_ligne = imagecolorallocate($image,$rouge,$vert,$bleu);
                                          imageline($image, mt_rand($x, $width), 0, mt_rand(0, $width), $height, $couleur_ligne);
                                  //Et voilà la fonction que j'utilise : "imagettftext" que j'ai bien cherché et qui est plus adapté pour ce job que "imagestring".
                                  imagettftext($image,$caractere_setting[$i]['taille'],$caractere_setting[$i]['angle'],$x,24,$caractere_setting[$i]['couleur'],'comic.TTF',$caractere_setting[$i]['caractere']);
                                  $x+=$inter_space;
                                  $code .=$caractere_setting[$i]['caractere'];
                                  $i++;
                                  }

                          imagecolortransparent($image, $couleur1);             // On rend le fond blanc transparent
                          //********************************************************
                          //**Sauvergarde de l'image dans le fichier "captcha.png"**
                          //********************************************************
                          imagepng($image, "captcha.png");
                          ?>

                          Il a le mérite d'être transparent donc peut se fondre dans n'importe quelle décors.
                          Il génère des images de ce genre Image utilisateur
                          Vous devez disposez de la police de caractère comic.ttf disponible ici
                          • Partager sur Facebook
                          • Partager sur Twitter
                            7 août 2007 à 21:30:10

                            Bon voila je poste mon code, rien de très original, je précise juste qu'il ne fait que générer l'image, sans enregistrer le code ou quoi que ce soit (en fait j'ai la flemme :p )
                            <?php
                            header ("Content-type: image/png");
                            $largeur = 90;
                            $hauteur = 40;
                            $image = imagecreate($largeur,$hauteur);
                            $couleur  = imagecolorallocate($image, $rouge=rand(0,255), $vert=rand(0,255), $bleu=rand(0,255));
                            $i = 0;
                            $ecart = 10;
                            $nbr_caractere = rand(5,7);
                            $nombrehasard = rand(2,10);

                            while ($i<$nbr_caractere)
                            {
                            $nombre = rand(0,9);
                            $hauteurnombre = rand(0,25);
                            $couleur_texte = imagecolorallocate($image, rand(0,255), rand(0,255), rand(0,255));
                            imagestring($image, 5, $ecart, $hauteurnombre, $nombre, $couleur_texte);
                            $i++;
                            $ecart = $ecart + 10;
                            }

                            while ($nombretraits<$nombrehasard)
                            {
                            $couleur_traits = imagecolorallocate($image, rand(0,255), rand(0,255), rand(0,255));
                            ImageLine ($image, mt_rand(0, 90), mt_rand(0, 40), mt_rand(0, 90), mt_rand(0, 40), $couleur_traits);
                            $nombretraits++;
                            }
                            imagecolortransparent($image, $couleur);
                            imagepng($image);
                            ?>


                            ce qui donne:
                            Image utilisateur (rechargez la page si vous voulez la changer ^^ où cliquez ici c'est plus rapide )
                            • Partager sur Facebook
                            • Partager sur Twitter
                              7 août 2007 à 21:52:51

                              C'est un très beau début.
                              Mais je pense qu'un captcha avec des nombres n'est pas suffisant.
                              En incluant des lettres, et en jouant sur leurs inclinaisons sa serait parfait.
                              @+
                              • Partager sur Facebook
                              • Partager sur Twitter
                                7 août 2007 à 21:58:07

                                Voir pages 16, nouvelle version !
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  7 août 2007 à 22:03:28

                                  Je te l'ai déjà dis une fois ton captcha est très beau
                                  Je me permet d'ajouter l'image qu'il génère car il se peut que tu change ton lien donc le voilà ton captcha:
                                  Image utilisateur
                                  Encore bravo
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    7 août 2007 à 22:04:39

                                    J'avais pas le gout de prendre une image, :D

                                    Mais tu l'as fais alors, profitons-en!!
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Anonyme
                                      7 août 2007 à 22:29:44

                                      Le meilleur captcha qu'on peut réaliser sans se casser la tête ET sûrtout éxécutant le code source beaucoup plus rapidement ...

                                      Si vous êtes humain, quel est le résultat de 5 + 9 ? ... 14 !


                                      ... :p
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        7 août 2007 à 22:47:46

                                        J'ai troujours trouvé que l'image faisait plus pro.

                                        De plus, les robot peut toujours lire ça...
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                        Anonyme
                                          7 août 2007 à 22:59:42

                                          Citation : OctetsMotion

                                          J'ai troujours trouvé que l'image faisait plus pro.

                                          De plus, les robot peut toujours lire ça...



                                          Bon, quand tu auras des sites tels que Microsoft.com ou Fnac.com (sans faire de la pub :-° ) tu utilisera peut être ces moyens ou plus avancés peut être, mais danc le cas où on se trouve, je crois cela peut être suffisant sans autant alourdir le code source. Chacun à sa façon de le faire après tout ^^ .
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            7 août 2007 à 23:16:48

                                            tnsaad j'avais la flemme de mettre des lettres, surtout que je ne m'en servirais jamais...
                                            par contre pour l'inclinaison, j'ai essayé mais pas réussi :p
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              7 août 2007 à 23:17:13

                                              Je suis d'accord avec toi sur ce point.

                                              :)
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                7 août 2007 à 23:22:42

                                                Citation : x86programmer

                                                Le meilleur captcha qu'on peut réaliser sans se casser la tête ET sûrtout éxécutant le code source beaucoup plus rapidement ...

                                                Si vous êtes humain, quel est le résultat de 5 + 9 ? ... 14 !



                                                ... :p

                                                Je ne pense pas que se soit un très bon captchas.
                                                Je te fait tout de suite le code que pourrait utiliser un bot pour trouver le résultat et l'afficher surtout que tout se trouve en claire dans le code source de la page.
                                                Il n'a qu'à lire le premier chiffre qui est exactement le nième caractère de la ligne, puis le second qui est le nième+4 caractère, faire leurs somme, et remplir ton formulaire.
                                                Et si on se casse la tête à faire des trucs que seuls les humains peuvent lire, c'est qu'il y a des bots capables de scanner le captcha, et lui faire une reconnaissance des caractères des plus pointus.
                                                Donc je ne pense pas qu'un bots aussi performant puisse être captcher par un truc aussi débil qu'est ton truc...
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  7 août 2007 à 23:35:12

                                                  La solution sans images a le mérite d'être accessible ;) . Et puis, avec des questions de différents types contenant des éléments aléatoires, on peut compliquer les choses pour un programme en gardant la facilité pour les humains. De toutes façons, il existe des programmes de reconnaissance de caractères pour déjouer les captchas en images plus évolués que ceux vus jusqu'ici (exemple).

                                                  EDIT : meilleur exemple de l'efficacité des OCR : http://ocr-research.org.ua/list.html
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                  Anonyme
                                                    7 août 2007 à 23:36:31

                                                    Citation : tnsaad

                                                    Citation : x86programmer

                                                    Le meilleur captcha qu'on peut réaliser sans se casser la tête ET sûrtout éxécutant le code source beaucoup plus rapidement ...

                                                    Si vous êtes humain, quel est le résultat de 5 + 9 ? ... 14 !



                                                    ... :p

                                                    Je ne pense pas que se soit un très bon captchas.
                                                    Je te fait tout de suite le code que pourrait utiliser un bot pour trouver le résultat et l'afficher surtout que tout se trouve en claire dans le code source de la page.
                                                    Il n'a qu'à lire le premier chiffre qui est exactement le nième caractère de la ligne, puis le second qui est le nième+4 caractère, faire leurs somme, et remplir ton formulaire.
                                                    Et si on se casse la tête à faire des trucs que seuls les humains peuvent lire, c'est qu'il y a des bots capables de scanner le captcha, et lui faire une reconnaissance des caractères des plus pointus.
                                                    Donc je ne pense pas qu'un bots aussi performant puisse être captcher par un truc aussi débil qu'est ton truc...



                                                    OK ^^ . C'est vrai, on pourrait très vite faire un bot qui détecterait les 2 chiffres en les additionnant. Mais pour que le hackeur se compliquent un peu la vie on pourrait faire d'autres signes aléatoirement (+, -, /, *). Oui, encore une fois la hacker n'aurait pas trop de mal. Cependant je parlais pour un site pas très connu, comme un site personnel quoi. C'est vrai que cela ne concernait pas un site tel que le SiteDuZero et encore moins Microsoft ^^

                                                    Alors si le bot sait faire des addtions, pourquoi ne pas utiliser des mots/questions ? :-° Je peux te dire que tu vas beaucoup travailler là :p Questions classiques : J'ai combien de bras ?, J'ai combien de têtes ? ...

                                                    Normalement la personne sera répondre à moins qu'il soit... un bot ! :lol:
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      7 août 2007 à 23:39:11

                                                      Tu peux toujours mettre tes addtions dans une image, si le robot la décode, ça ne donnera pas le résultat!
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        7 août 2007 à 23:44:59

                                                        C'est vrai que question accessibilité ce n'est pas au top, mais il existe aussi des solution pour remédier à celà comme des fichiers son ou le contact de l'administrateur quand on est malvoyant ou qqchose comme ça.
                                                        Mais je reste sur ma position que c'est la meilleur façon de protéger du spam(Après la solution de s'inscrir dans le site bien sûr).
                                                        Et les solutions genre je met un input en hidden ou que je met la somme de nombres à calculer me paraissent trop et je dit bien trop facile à calculer.
                                                        Un gamin de 6ans pourrais le faire.
                                                        Mais on est pas là pour débattre sur les failles de tous les système, nous sommes là pour créé une galerie de captchas,, et comme je l'ai dis et redis, c'est plus l'aspect pédagogique que peut avoir la création de captchas sur nous qui m'intéresse.


                                                        PS : anonymousguest je suis ton plus grand fan surtout après le truc sur le FullText mais bon hors sujet :lol:
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                        Anonyme
                                                          8 août 2007 à 0:02:42

                                                          Citation : tnsaad

                                                          [...]Et les solutions genre je met un input en hidden ou que je met la somme de nombres à calculer me paraissent trop et je dit bien trop facile à calculer.



                                                          Je crois tu confonds un peu là :o .

                                                          Page 1
                                                          $nombre1 = mt_rand(2, 9);
                                                          $nombre2 = mt_rand(2, 9);
                                                          $resultat = $nombre1 + $nombre2;
                                                          $_SESSION['resultat'] = $resultat;
                                                          echo "Combien ferait {$nombre1} + {$nombre2} ?"; ...<input type="text" name="resultat" />...


                                                          Page 2
                                                          if (isset($_SESSION['resultat']) && isset($_POST['resultat'])) {
                                                          if (trim($_POST['resultat']) == $_SESSION['resultat'])
                                                          echo 'Code bon...';
                                                          else {
                                                          // Si le résultat est faux, on renvoie le visiteur...
                                                          header('Location: page1.php');
                                                          }
                                                          }
                                                          else {
                                                          // on renvoie le visiteur parce qu'il n'a rien à faire sur cette page si le formulaire n'a pas été validé
                                                          header('Location: page1.php');
                                                          }
                                                           


                                                          Biensûr c'est un exemple très basique et encore moins sécurisé pour instant, mais c'est la base pour vérifier que c'est un humain (quoi que ce soit encore facile là... :p ).

                                                          Après, comme je l'ai dit, il faut compliquer un peu avec des questions (dans des arrays avec les réponses), et le tour est joué ! ^^
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            8 août 2007 à 0:13:29

                                                            Oui je sais mon chère x86programmer comment génerer un truc comme le tient.
                                                            Quand je parle d'un input de type hidden c'est autre chose. C'est que tu met tout tes champs visible par l'utilisateur, et tu en laisse un, que le visiteur ne voit pas. Si c'est un bot qui remplie les champs, il remplieras celui de type hidden, et si ce champ est remplie celà veut dire que c'est un robot.
                                                            Tu la connaissait pas celle là hein??? :p .
                                                            Sinon et si on revenait à nos moutons et à nos captchas.
                                                            x86programmer si tu a un captcha à proposer tu es le bienvenue, sinon Image utilisateur (je rigole tu es bien sûr le bienvenue dans tous les cas :D )
                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                            Anonyme
                                                              8 août 2007 à 0:30:03

                                                              Citation : tnsaad

                                                              [...] Si c'est un bot qui remplie les champs, il remplieras celui de type hidden, et si ce champ est remplie celà veut dire que c'est un robot.
                                                              Tu la connaissait pas celle là hein??? :p .



                                                              Non, mais toi non plus je crois :p Car elle à été présentée il y a 2 - 3 jours de cela sur le SdZ, je ne me rappelle plus qui c'était mais pas toi en tout cas :lol: (humour)

                                                              Citation : tnsaad

                                                              x86programmer si tu a un captcha à proposer tu es le bienvenue, sinon Image utilisateur (je rigole tu es bien sûr le bienvenue dans tous les cas :D )



                                                              Elle était bonne celle-là ^^ C'est vrai, je crois que j'ai un peu beaucoup parlé ce soir, à cause de la fatigue peut-être :-° Bonn, je vous laisse pour de bon, vous ne voulez pas renoncer o_O ( ;) ).
                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              [Galerie] Réalisation de CAPTCHAs

                                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                              • Editeur
                                                              • Markdown