Bonjour
je parle ici des captchas de base, pas des machins de Google où on doit choisir les images montrant des océans
dans mon exemple il y a une image avec du texte généré (exemple "4z3rty") et l'utilisateur doit entrer ça dans le champ situé en dessous de l'image
j'aimerais développer un système comme ça mais je vois pas trop comment ça marche
Mon Test
donc pour tester je regarde ce que fait le navigateur sur un site qui utilise à peu près ce système.
pour aller chercher l'image, ça me fait une requête GET sur : "LESITE/captcha.php?t=CHAINE-ALÉATOIRE"
par contre je m'attendais à ce que cette "page"/"image" me glisse un cookie pour savoir de quel captcha on parle
parce que si je vais directement sur la page "LESITE/captcha.php?t=CHAINE-ALÉATOIRE" ou que je réactualise l'image, le captcha change
Mais il n'en est rien, l'adresse "LESITE/captcha.php?t=CHAINE-ALÉATOIRE" ne renvoi pas de cookie
ce que j'imaginais est que lors de chaque requête :
- l'image est générée à partir d'un code qu'il faut rentrer
- le "bon code" est stocké en format texte côté serveur (bdd / session / fichier texte ou autre)
- l'image est renvoyée au client
- un "identifiant" est renvoyé en cookie. Cet identifiant ne contient pas le "bon code" à rentrer, ce serait trop facile, mais juste un chaîne permettant de savoir c'est de quel code/image que l'on parle…
Vraisemblablement ça ne fonctionne pas comme ça.
J'ai donc poussé mes tests plus loin.
Si je charge la page d'inscription (celle qui contient le captcha), que je réactualise l'image par exemple en l'ouvrant dans un nouvel onglet (donc nouvelle requête / le code du captcha change), et que j'entre le code généré par la nouvelle image… je me dis que normalement ça devrait marcher.
Il se trouve que non, et que c'est bien le code originel du CAPTCHA affiché sur la page d'inscription qui est demandé.
Petit schéma pour ceux qui n'ont pas suivi mes explications :
1 2 3 4 5 6 7 8 | GET /inscription.php (page qui contient l'image et le formulaire du captcha) GET /captcha.php?t=iu4dez3uixc56qt (via la balise HTML image) cette image affiche "AZERTY" GET /captcha.php?t=iu4dez3uixc56qt (requête directe sur l'image avec la même valeur pour "t") cette image affiche "QWERTY" |
sauf que si je rentre "QWERTY" sur ma page inscription.php, ça me renvoi une erreur. Mais si je rentre "AZERTY", ça marche.
Comment ce genre de système est possible sans cookie ?
Merci !