CAPTCHA AJAX ANTI-BOT

Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
- - Dernière réponse : cs_emilia123
Messages postés
122
Date d'inscription
mercredi 19 décembre 2001
Statut
Membre
Dernière intervention
5 janvier 2009
- 16 avril 2012 à 07:41
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/54207-captcha-ajax-anti-bot

cs_emilia123
Messages postés
122
Date d'inscription
mercredi 19 décembre 2001
Statut
Membre
Dernière intervention
5 janvier 2009
-
Bonjour,

Je n'ai pas testé le code donc je ne vais pas donner mon avis sur le coté utilisateur, par contre j'aurai un conseil au niveau développement.
Il ne faudrait pas utiliser le test "==" pour comparer 2 valeurs surtout si l'une d'elle provient de l'utilisateur (variable $_POST).
En effet le test "==" compare 2 valeurs après avoir essayé de les "transtyper" pour avoir les 2 valeurs dans le même type.
Cela génère parfois des résultats surprenants.
exemple :
<?php
if ('une chaine' == 0){
echo "une chaine est équivalente à 0";
}
?>
Cela affichera "une chaine est équivalente à 0".
Pour effectuer un vrai test il faut utiliser l'opérateur de comparaison "===" qui impose une égalité au niveau des valeurs, mais aussi au niveau du type des données (sans transtypage).
Je n'ai pas testé si c'est exploitable dans le code ici, mais pour lever tous les doutes, il faudrait prendre l'habitude de toujours écrire "===" pour les tests.
Les tests doivent être plus rigoureux, mais cela va dans le sens de la sécurité.

Bonne continuation.

EM.
darkvador59
Messages postés
9
Date d'inscription
lundi 9 août 2004
Statut
Membre
Dernière intervention
10 avril 2012
-
Voila Citt, les problèmes sont corrigés.

N'hésitez pas à me prévenir si il y a un soucis.
darkvador59
Messages postés
9
Date d'inscription
lundi 9 août 2004
Statut
Membre
Dernière intervention
10 avril 2012
-
concernant l'image "/captcha/imgs/item-livre.png" je pense qu'une solution serait de faire '"/captcha/imgs/item.php?img=".rand() ' avec le rand en session ' $_SESSION['item-".$rand."]="livre" ' . Je le met en ligne des que j'ai un peu de temps. d'un autre coté un OCR sur l'image ca touche tous les captcha actuels...

et le mec qui suit l'installe a part avoir des logs,je vois pas ce qui fonctionne pas. J'avoue que s'est pas terrible, j'ai un peu zappé le isset.
citt
Messages postés
213
Date d'inscription
dimanche 8 juin 2003
Statut
Membre
Dernière intervention
9 février 2012
2 -
Je veut dire que lorsqu'il y a marqué LIVRE dans l'image GD, le nom d l'image de la vignette se nomme "/captcha/imgs/item-livre.png" donc le robot fera facilement son choix (OCR sur l'image GD pour récupéré le texte, puis recup de l'id de l'image qui comprend ce nom).

Concernant les erreurs, c'est juste que tu propose une source à installer avec des erreurs, perso je suis dev donc je sais à quoi cela correspond mais le mec qui suit juste ton installation ça marche pas.

La mise en place de commentaire serait comme même un plus pour ceux qui veulent personnalisé l'image GD !

Le "display:none" sur ta checkbox ne trompe plus beaucoup de robot, un indent en négatif ou autre chose serait mieux !
darkvador59
Messages postés
9
Date d'inscription
lundi 9 août 2004
Statut
Membre
Dernière intervention
10 avril 2012
-
c'est pas possible que ca passe si tu desactives le js vue que les sessions sont pas déclarées : "if($_POST['captcha'] == $_SESSION['captcha-..." regarde la fonction validate().

pour les erreurs il faut simplement rajouter if( isset($...) ) aux lignes que tu as citées.

Les vignettes ont un nom et ce nom et celui de l'image générée, c'est ça que tu veux dire?

je vais corriger tout ça dans la prochaine version ^^