cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020
-
10 avril 2012 à 11:23
cs_emilia123
Messages postés122Date d'inscriptionmercredi 19 décembre 2001StatutMembreDerniè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.
cs_emilia123
Messages postés122Date d'inscriptionmercredi 19 décembre 2001StatutMembreDernière intervention 5 janvier 2009 16 avril 2012 à 07:41
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és9Date d'inscriptionlundi 9 août 2004StatutMembreDernière intervention10 avril 2012 12 avril 2012 à 19:05
Voila Citt, les problèmes sont corrigés.
N'hésitez pas à me prévenir si il y a un soucis.
darkvador59
Messages postés9Date d'inscriptionlundi 9 août 2004StatutMembreDernière intervention10 avril 2012 12 avril 2012 à 17:51
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és209Date d'inscriptiondimanche 8 juin 2003StatutMembreDernière intervention 9 février 20123 12 avril 2012 à 15:46
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és9Date d'inscriptionlundi 9 août 2004StatutMembreDernière intervention10 avril 2012 12 avril 2012 à 15:02
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 ^^
citt
Messages postés209Date d'inscriptiondimanche 8 juin 2003StatutMembreDernière intervention 9 février 20123 12 avril 2012 à 14:45
Je viens de tester la sécurité et je dirait que le script est original mais la sécurité pas du tout.
Ta validation du captcha se fait pas Javascript donc si tu le désactive et hop sa passe !
Le nom de tes vignettes porte le nom dans l'image :(
citt
Messages postés209Date d'inscriptiondimanche 8 juin 2003StatutMembreDernière intervention 9 février 20123 12 avril 2012 à 14:24
Je viens de tester ton code est bam sans rien toucher 4 erreurs :
- Notice: A session had already been started - ignoring session_start() in ~\www\captcha\captcha.php on line 2
- Notice: Undefined index: type in ~\www\captcha\captcha.php on line 5
- Notice: Undefined index: type in ~\www\captcha\captcha.php on line 9
- Notice: Undefined index: type in ~\www\captcha\captcha.php on line 13
Sinon je le trouve original et la je teste la sécurité ;)
darkvador59
Messages postés9Date d'inscriptionlundi 9 août 2004StatutMembreDernière intervention10 avril 2012 11 avril 2012 à 10:47
Si si j'accepte les critiques, c'est juste que c'est pas 1 chance sur 5 (cf source). Pour le checkbox c'est dans le cas d'un bot floodant plein de sites.
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020371 11 avril 2012 à 09:58
Bonjour,
Je ne sais pas d'où tu tiens ces chiffres...
Le danger n'est pas un bot qui essaye de flooder plusieurs sites mais un bot bien particulier qui va viser le tiens, et dans ce cas là, tu es mal !
Mais bon, je préfère en rester, là, tu as l'air de ne pas trop apprécier les critiques que je fais à ton programme malgré le fait que je le trouve assez original.
darkvador59
Messages postés9Date d'inscriptionlundi 9 août 2004StatutMembreDernière intervention10 avril 2012 11 avril 2012 à 09:43
rien qu'avec un on passe plus de 90% des bots( si la case a été coché alors c'est un bot...)
Après tu peux le mettre sur ton site, si ça marche pas tu reviendra ici le dire à tout le monde et voila.
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020371 11 avril 2012 à 08:05
Bonjour,
Ok pour le principe, c'est original. Par contre, si un bat apprend à utiliser ta captcha, c'est terminé, elle ne servira plus à rien.
Je ne pense pas que l'argument "ce système est sécurisé parce qu'il est encore inconnu" soit valide.
Et je pense que si quelqu'un doit prouver quelque chose, c'est toi...
On peut partir d'une constatation simple : soit un automate qui utilise un algorithme aléatoire pour passer les captcha. Dans le cas d'une lettre (ce qui n'est déjà pas terrible), la captcha ne laisse passer qu'une requete sur 26 et dans ton cas, c'est une sur 5, même si tu peux modifier le nombre d'images à ajouter.
Autre inconvénient, tu as besoin de js.
Mais bon, ta source est intéressant et le principe est original. En revanche, je n'utiliserais pas cela pour mon site.
darkvador59
Messages postés9Date d'inscriptionlundi 9 août 2004StatutMembreDernière intervention10 avril 2012 10 avril 2012 à 18:56
Bonjour,
je ne suis pas totalement de ton avis, il n'y a que 5 icônes mais ces 5 icônes ont déjà un nombre généré aléatoirement, donc impossible pour un bot n’exécutant pas le javascript de passer...
De plus les bot ne connaissent pas ce captcha, ils ne peuvent donc pas le "casser".
Tu me répondras certainement que si un bot apprend à utiliser ce captcha, il ne servira plus a grand chose (1/5 : parmis les bots le connaissant), mais heureusement le code peut être modifier par tout le monde, et il suffit d'une toute petite modification pour qu'un bot ne sache plus quoi faire.
Ce captcha protège contre 99,9% des bots à l'heure actuelle ( en faite c'est 100% puisque ce captcha est inconnu mais je me laisse une marge d'erreur :-) ), si tu me dis le contraire cite moi la preuve.
PS: avec une lettre de l'alphabet, tout le monde connait le principe surtout les bots. J'ai partager cette source puisque c'est un captcha inhabituel, tout le monde peut apprendre à en faire un.
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020371 10 avril 2012 à 11:23
Bonjour,
Le principe ne me semble pas extraordinaire. En effet, une requête sur cinq passera, tu ne filtre pas grand chose. Faire la même chose en utilisant une seule lettre de l'alphabet est 5 fois plus sécurisé...
16 avril 2012 à 07:41
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.
12 avril 2012 à 19:05
N'hésitez pas à me prévenir si il y a un soucis.
12 avril 2012 à 17:51
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.
12 avril 2012 à 15:46
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 !
12 avril 2012 à 15:02
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 ^^
12 avril 2012 à 14:45
Ta validation du captcha se fait pas Javascript donc si tu le désactive et hop sa passe !
Le nom de tes vignettes porte le nom dans l'image :(
12 avril 2012 à 14:24
- Notice: A session had already been started - ignoring session_start() in ~\www\captcha\captcha.php on line 2
- Notice: Undefined index: type in ~\www\captcha\captcha.php on line 5
- Notice: Undefined index: type in ~\www\captcha\captcha.php on line 9
- Notice: Undefined index: type in ~\www\captcha\captcha.php on line 13
Sinon je le trouve original et la je teste la sécurité ;)
11 avril 2012 à 10:47
11 avril 2012 à 09:58
Je ne sais pas d'où tu tiens ces chiffres...
Le danger n'est pas un bot qui essaye de flooder plusieurs sites mais un bot bien particulier qui va viser le tiens, et dans ce cas là, tu es mal !
Mais bon, je préfère en rester, là, tu as l'air de ne pas trop apprécier les critiques que je fais à ton programme malgré le fait que je le trouve assez original.
11 avril 2012 à 09:43
Après tu peux le mettre sur ton site, si ça marche pas tu reviendra ici le dire à tout le monde et voila.
11 avril 2012 à 08:05
Ok pour le principe, c'est original. Par contre, si un bat apprend à utiliser ta captcha, c'est terminé, elle ne servira plus à rien.
Je ne pense pas que l'argument "ce système est sécurisé parce qu'il est encore inconnu" soit valide.
Et je pense que si quelqu'un doit prouver quelque chose, c'est toi...
On peut partir d'une constatation simple : soit un automate qui utilise un algorithme aléatoire pour passer les captcha. Dans le cas d'une lettre (ce qui n'est déjà pas terrible), la captcha ne laisse passer qu'une requete sur 26 et dans ton cas, c'est une sur 5, même si tu peux modifier le nombre d'images à ajouter.
Autre inconvénient, tu as besoin de js.
Mais bon, ta source est intéressant et le principe est original. En revanche, je n'utiliserais pas cela pour mon site.
10 avril 2012 à 18:56
je ne suis pas totalement de ton avis, il n'y a que 5 icônes mais ces 5 icônes ont déjà un nombre généré aléatoirement, donc impossible pour un bot n’exécutant pas le javascript de passer...
De plus les bot ne connaissent pas ce captcha, ils ne peuvent donc pas le "casser".
Tu me répondras certainement que si un bot apprend à utiliser ce captcha, il ne servira plus a grand chose (1/5 : parmis les bots le connaissant), mais heureusement le code peut être modifier par tout le monde, et il suffit d'une toute petite modification pour qu'un bot ne sache plus quoi faire.
Ce captcha protège contre 99,9% des bots à l'heure actuelle ( en faite c'est 100% puisque ce captcha est inconnu mais je me laisse une marge d'erreur :-) ), si tu me dis le contraire cite moi la preuve.
je l'ai mis sur GitHub ( https://github.com/patrocle ) pour qu'il soit plus simple à modifier.
PS: avec une lettre de l'alphabet, tout le monde connait le principe surtout les bots. J'ai partager cette source puisque c'est un captcha inhabituel, tout le monde peut apprendre à en faire un.
10 avril 2012 à 11:23
Le principe ne me semble pas extraordinaire. En effet, une requête sur cinq passera, tu ne filtre pas grand chose. Faire la même chose en utilisant une seule lettre de l'alphabet est 5 fois plus sécurisé...