Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1624 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Les requis pour un captcha ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Les requis pour un captcha ?

n°1453900
supermofo
Hello World !
Posté le 07-10-2006 à 23:11:56  profilanswer
 

Bonsoir
 
 
Je travaille actuellement sur un captcha image. Pour l'instant j'en suis au niveau logique c'est à dire l'algorithme dont voici le détail:
 
1 - creer une session pour l'utilisateur qui demande le form
2 - creer une image et stocker ses valeurs dans la session
3 - si le code retaper correspond à la valeur dans la session => OK
 
 
Pensez vous qu'il soit nécessaire d'améliorer cet algo ?  
 

mood
Publicité
Posté le 07-10-2006 à 23:11:56  profilanswer
 

n°1453906
omega2
Posté le 08-10-2006 à 01:18:23  profilanswer
 

C'est un moyen de le gérer à partir du moment où on est sur que la session ne sera pas périmé avant la fin du remplissage du formulaire.
A mon boulot, le patcha que j'ai mis en place utilise un code aléatoire dans le formulaire et un texte aléatoire lui aussi.
Le code et le texte associé sont stocké dans une base de donnée pendant quelques minutes.
Quand la personne valide le formulaire, je vérifie que le texte du captcha qu'il a saisie correspond bien au code mis dans le formulaire et je supprime l'enregistrement correspondant de la base ainsi que les enregistrements périmé.
 
Mais bon, dans l'ensemble le but c'est bien de ne pas passer le texte en clair et en fait de ne donner aucune info permettant de deviner le code par programme tout en étant capable de le vérifier. Ton systéme correspond bien à ces critaires est donc comme il faut. Enfin du moins quand il sera fait. ;)

n°1453908
supermofo
Hello World !
Posté le 08-10-2006 à 01:50:57  profilanswer
 

J ai fini l'image :
 

Code :
  1. <?php
  2.     header ("Content-type: image/png" );
  3.    
  4.     $im = ImageCreate (100, 50) or die;
  5.     $fr = rand(180,220);
  6.     $fv = rand(180,220);
  7.     $fb = rand(180,220);     
  8.     $couleur_fond = ImageColorAllocate ($im, $fr, $fv, $fb);
  9.  
  10.   for($i=0;$i<100;$i++){
  11.     ImageSetThickness ($im, rand(1,2));
  12.     $lfr = $fr + rand(1,155);
  13.     $lfv = $fr + rand(1,155);
  14.     $lfb = $fb + rand(1,155);
  15.     $couleur_line = ImageColorAllocate ($im, $lfr, $lfv, $lfb);
  16.     $x1 = rand(1,100);
  17.     $y1 = rand(1,50);
  18.     $x2 = rand(1,100);
  19.     $y2 = rand(1,50);
  20.     ImageLine ($im, $x1, $y1, $x2, $y2, $couleur_line);
  21.   }
  22.  
  23.  
  24.  
  25.    $txt = ImageCreate (100,50);
  26.    $fond = ImageColorAllocate($txt,255,255,255);
  27.    ImageColorTransparent($txt,$fond);
  28.  
  29.    $chaine = "Ye05w";
  30.    $arr = str_split($chaine);
  31.    $xi=2;
  32.    foreach($arr as $string){
  33.  
  34.    $yi= rand(0,5);
  35.    $txt_col = ImageColorallocate($txt,rand(240,255),rand(240,255),rand(240,255));
  36.    ImageString ($txt, 5,$xi , $yi, $string, $txt_col);
  37.    $xi+=rand(10,15);
  38.   }
  39.  
  40.  
  41.    imagecopyresampled($im,$txt,0,0,0,0,100,50,75,20);
  42.     ImagePng ($im);
  43. ?>


 
[:al zheimer]


Message édité par supermofo le 08-10-2006 à 01:57:05
n°1453909
omega2
Posté le 08-10-2006 à 02:18:35  profilanswer
 

Evite la chaine fixe comme texte du captcha. C'est trop facile de le trouver aprés. :p

n°1453910
supermofo
Hello World !
Posté le 08-10-2006 à 02:24:00  profilanswer
 

Ouais bah j y reflechis justement :D  
 
 
Si ce script peut crée une variable de session tout baigne, sinon ca ve devenir alambiqué ...
 

n°1453936
supermofo
Hello World !
Posté le 08-10-2006 à 13:58:27  profilanswer
 

J'ai un problème : impossible de recuperer la session dans le script image.php.
 
Dans l'ordre voila ce qui se passe:
 
1- user arrive sur form.php  et obtient son code  
2 - image est generee avec la var $_SESSION
 
 
Detail image.php
 

Code :
  1. <?php
  2. session_start();
  3. header ("Content-type: image/png" );
  4. $code = $_SESSION['code'];
  5. ImagePng($bruit);


 
 
Logiquement tout devrait bien se passer. Pourtant j'assite à un decalage dans les variables de session ( la variable de session de l'image est en avance sur celle du form ).
 
 

Message cité 1 fois
Message édité par supermofo le 08-10-2006 à 16:22:43
n°1453980
supermofo
Hello World !
Posté le 08-10-2006 à 17:48:33  profilanswer
 

supermofo a écrit :

J'ai un problème : impossible de recuperer la session dans le script image.php.
 
Dans l'ordre voila ce qui se passe:
 
1- user arrive sur form.php  et obtient son code  
2 - image est generee avec la var $_SESSION
 
 
Detail image.php
 

Code :
  1. <?php
  2. session_start();
  3. header ("Content-type: image/png" );
  4. $code = $_SESSION['code'];
  5. ImagePng($bruit);


 
 
Logiquement tout devrait bien se passer. Pourtant j'assite à un decalage dans les variables de session ( la variable de session de l'image est en avance sur celle du form ).


 
 
Resolu: session_destroy() planque au milieu du code  :lol:  

n°1454202
Chaos Inte​stinal
Posté le 09-10-2006 à 12:17:42  profilanswer
 

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Les requis pour un captcha ?

 

Sujets relatifs
Application.FileSearch objet requisNombre de bytes requis pour executer une instruction
generer captcha et verifier saisie dans formulaire [RESOLU]Wscript.echo ==> Objet Requis : Wscript ?
CaptchaOù est ma faute? msg d'erreur("objet requis")
Connaitre tous les dll requis par une appli VB[PHP] Pré-requis pour utiliser la fonction mail()
[VB + Access ] debutant avec ADO ... " un objet est requis" 
Plus de sujets relatifs à : Les requis pour un captcha ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR