alors oui je sais, ce sujet a déjà dû être débattu un bon nombre de fois, j'ai fait une recherche avant de poster ce sujet mais je suis un éternel insatisfait
En effet, le CAPTCHA pourait être une solution, hélas, j'ai pu avoir la preuve sur d'autres sites que cela ne marchait pas toujours donc je suis à la recherche d'une solution alternative efficace
un code audio aléatoire qu'il faudrait écouter et reproduire dans un champ prévu à cet effet mais est-ce seulement possible en PHP ? Les fichiers audios risquent, de plus de prendre un peu de place sur le serveur donc bon...
La bonne vieille question avec la réponse contenue dans la base de donnée de sorte que les robots ne puissent pas trouver la réponse dans le code source mais hélas, trois fois hélas si jamais par hasard ils tombent sur la bonne réponse ? Je ne sais pas si c'est possible, quel est le pourcentage de chance que ça soit la bonne réponse...
Un champ caché qui, s'il est rempli (je crois que certains robots peuvent voir et remplir des champs, même cachés non ?) remettrait en cause l'inscription
Enfin voilà où j'en suis, j'aimerais avoir vos avis sur ces solutions et savoir s'il y'en aurait d'autres qui pourraient se réveler efficace.
Merci d'avance
"Striker : Surely you can't be serious. Rumack : I am serious... and don't call me Shirley."
Tu peux faire un champ caché avec la réponse à un calcul hashée ou cryptée, tu vérifies après la soumission si le champ non-caché "resultat" en sha1 égal le champ caché.
A priori, le robot ne peut ni savoir quel type de hashage tu as utilisé, ni mettre les deux champs à la même valeur, ni hashé l'un ou l'autre, etc.
Dès qu'un site est correctement référencé, les méthodes ci-dessus ne servent pas à grand chose.
Une méthode qui semble marcher, c'est une redirection suivie d'un transfert des variables POST ou GET vers des variables de session exploitées par une page non référencée.
L'avantage ici, c'est que les visiteurs humains ne se rendent compte de rien et n'ont rien à prouver.
A toi de trouver une bonne alternative, j'ai mis un exemple pour l'addition, mais tu peux faire la même chose pour pleins d'autres choses, question simple, etc.
La première est réalisable, mais pas franchement terrible si on a pas de son (ou qu'on a pas envie de le mettre).
La seconde est pour moi la meilleure car elle nécessite une réflexion typiquement humaine, et pas une prise automatique.
La dernière n'est pas viable parce que dès qu'un robot ne remplit pas les champs cachés, tu es dans la galère
Sinon y a une solution en javascript qui a été utilisée sur les forums phpBB et qui fonctionne assez bien je dois dire (j'ai du l'installer sur le forum d'un ami). Voir ici pour le principe: http://forum.nerdzblog.com/viewtopic.php?p=47
En gros, faut vérifier qu'il y a à un moment donné sur un de tes champs, un OnClick. C'est discriminatoire pour ceux qui n'utilisent pas la souris, mais je me demande s'il n'y a pas une alternative.
Effectivement, le coup de la question dont seul un être humain peut trouver la réponse me semble bien ceci dit, peut-être y-a-il une probabilité, même infime, que le robot trouve la réponse si le raisonnemment est trop simple ?
La solution du mod PhpBB semble bon sauf que si le javascript n'est pas activé, ça faut tout merder
Enfin bon, je vais tâcher de faire quelquechose dans l'esprit de ta solution, merci Serion
Ceci dit, je préfère ne pas mettre ce sujet en résolu au cas où cela intéresserait d'autres personnes ou bien qu'il y ait d'autres retours sur ce sujet
"Striker : Surely you can't be serious. Rumack : I am serious... and don't call me Shirley."
Serion : petit détail sur la phrase "Combien font 2 + 5 ?" (par exemple), il faut savoir que les robots les plus intelligents peuvent calculer l'opération et cela est dû au fait que tu utilises un signe mathématique dans ta phrase. La solution dans ce cas est de faire "Comment font 2 plus 5 ?", plus fiable.
Bonsoir, tout d'abord je précise que je ne suis pas un expert en php, je m'y interesse fortement
Mais même sans etre un expert, c'est surtout d'un point de vue logique, une de tes propositions tient tout à fait la route; celle de poser une question, un robot, bien que tres "intelligent" ne peut certainement pas deviner cela, encore moins si tu fais plusieurs Questions/réponses
En fait, les spammeurs ont trouvé mieux :
Ils installent des chevaux de troie (en pièces jointes à des courriers envoyés par millions)qui récupèrent CAPCHA, questions... et demandent à un naïf de le décoder ou d'y répondre pour qu'un vêtement d'une fille (ou un gars) s'enlève. Si la réponse est bonne, on passe au vêtement suivant...
C'est sûr que si la question est bien posée et/ou qu'il y a un hash, il n'y arrivera pas mais dans le cas de la question multiple par exemple (ou simple) qu'il puisse, par hasard trouver la réponse.
"Striker : Surely you can't be serious. Rumack : I am serious... and don't call me Shirley."
juste par curiosité, quel genre de site compte tu mettre en place car pour attirer une telle attention sur l'anti-spam sur l'inscription, ça doit être sérieux.
après rien n'empêche de placer une option qui permet soit de valider par email ou par le webmaster comme font tout les autres?
Enfin je trouves ça bien de vouloir faire que son site soit le plus sécurisé possible mais la je trouves que ça devient très casse tête, pourquoi tant de peine, fait un essai avec du basique avec le reste sécurisé, si y'a un prob à n'importe quel moment, c'est la qu'il faut se poser des questions et mettre des mesures plus importantes.
Je travailles dans une banque, si ton site doit-être sécurisé, je crois qu'il faut que tu prennes des cours de java ou je sais tout autre language plus sérieux car j'ai l'impression que le site que tu mets au point à besoin d'une porte blindée pour pouvoir y accéder non?
Hum, non ce site n'a rien de top secret, c'est un jeu (mais je ne peux pas en dire plus pour l'instant ) mais je préfère éviter qu'il y ait de "fausses inscriptions" et donc anticiper avant que ça n'arrive au lieu de constater
"Striker : Surely you can't be serious. Rumack : I am serious... and don't call me Shirley."
Hum, non ce site n'a rien de top secret, c'est un jeu (mais je ne peux pas en dire plus pour l'instant ) mais je préfère éviter qu'il y ait de "fausses inscriptions" et donc anticiper avant que ça n'arrive au lieu de constater
La meilleure façon de résister à ce phénomène est d'utiliser l'activation mail
C'est très contraignant, même pour un mec qui voudrait t'embêter à créer pleins d'inscriptions. Surtout si tu limites l'inscription par l'adresse (une seule adresse correspond à un seul compte).
Ah et sinon, tant que j'y pense, dans un cadre plus général, limite tu mets une image de feu, d'herbe ou de cheval. Et tu demandes "ce qu'on voit" sur l'image. A priori, le soucis se pose en terme d'accessibilité pour les personnes malvoyantes, mais il suffit de trouver une alternative (un champ SQL prévu à cet effet si personne malvoyante qui déclenche une alternative en texte, etc).
Faut essayer de varier, tester un petit peu, je pense que ça vient surtout en fonction des comportements des robots.
Oui, je cherche aussi de ce coté là mais le problème qui se poserait (?) serait de savoir si on peut mettre une image de manière aléatoire.
Je réfléchissais à ta première solution et je me dis "mettons que ça me génère automatiquement combien fait 2 plus 5. Si le robot parvient à trouver la bonne réponse (on sait jamais hein), cela correspondra forcément à la réponse préalablement crypté donc est-ce une bonne solution où les robots n'ont aucune chance de trouver ou bien y-a-il un risque ?
Oui, il y aura une activation par mail je pensemais dans le passé, certains robots ont réussi à passer l'activation par mail pour poster leur saloperie (d'où l'idée du double blocage )
EDIT : visiblement avec un array et la fonction rand, c'est possible d'avoir une image aléatoire.
"Striker : Surely you can't be serious. Rumack : I am serious... and don't call me Shirley."
Je me permet de relancer ce sujet car j'ai enfin trouvé un moyen efficace pour enquiquiner les bots : je gènère une suite de chiffres de 0 à 9 dans le désordre avec la fonction et la fonction shuffle, comme ceci :
$chiffres = range(0,9);
shuffle($chiffres);
foreach($chiffres as $chiffre) {
echo $chiffre;
}
Ensuite, je met la suite générée dans une image de manière à compliquer la tâche aux robots. Ceci dit à y réfléchir, peut-être que je pourrais générer une suite de nombre dans le désordre à remettre dans l'ordre, ça serait moins restrictif, enfin bon je vais voir ça.
Sinon, je pense que peut-être ce sujet pourrait servir à mettre ses codes anti-robots (expliqués bien sûr) et aider pour y arriver, un topic unique des solutions anti-robots (sauf les captchas), qu'en pensez-vous ?
"Striker : Surely you can't be serious. Rumack : I am serious... and don't call me Shirley."
Je me permet de relancer ce sujet car j'ai enfin trouvé un moyen efficace pour enquiquiner les bots : je gènère une suite de chiffres de 0 à 9 dans le désordre avec la fonction et la fonction shuffle, comme ceci :
$chiffres = range(0,9);
shuffle($chiffres);
foreach($chiffres as $chiffre) {
echo $chiffre;
}
Ensuite, je met la suite générée dans une image de manière à compliquer la tâche aux robots. Ceci dit à y réfléchir, peut-être que je pourrais générer une suite de nombre dans le désordre à remettre dans l'ordre, ça serait moins restrictif, enfin bon je vais voir ça.
Sinon, je pense que peut-être ce sujet pourrait servir à mettre ses codes anti-robots (expliqués bien sûr) et aider pour y arriver, un topic unique des solutions anti-robots (sauf les captchas), qu'en pensez-vous ?
C'est quoi du coup la différence avec un captcha ?
Moi je te conseille les captchas ou les questions. Dans cette deuxième solution faut pas mettre des choix multiples, car si tu as 3choix, sa fait que 1 robots sur 3 va réussir à s'inscrire. De plus il faut quand même un bon nombre de question mais des questions du style:
1- Transcrivé x en lettre? où x est un chiffre différent de 0 (30 par exemple)
2- Transcrivé x en chiffre? où x est un chiffre écrit en lettre (trente par exemple)
3- Quel est le x mot dans la phrase que vous êtes en train de lire? où x est un nombre ième (premier, deuxième, troixième)
4- Quel est le x mot dans la phrase suivante : J'ai mangé un banane, une pomme et une orange aujourd'hui. où x est un nombre ième (premier, deuxième, troixième), la phrase suivante aussi peut changé
5- Quel est le premier et dernier mot de cette phrase : J'ai mangé un banane, une pomme et une orange aujourd'hui. la phrase suivante aussi peut changé
De cette façon chaque questions à plusieurs réponse différente, en changeant un ou 2 éléments de la question, si tu fait une rotation aléatoire des question en plus, cela donne plusieurs millions de résultat possible, soit très peu de chance qu'un bot le passe en essayant des choses au hasard.
Tracker > un captcha, il s'agit de reproduire une suite de caractères, ce que certains robots savent faire. Dans mon cas, ça génère une suite de chiffres à remettre dans l'ordre donc ça demande plus aux robots qui ne savent peut-être pas le faire (enfin j'espère )
"Striker : Surely you can't be serious. Rumack : I am serious... and don't call me Shirley."
es t'il possible qu'on laissen un commentaire <!-- combien font 2+2 -->
et un champ invisible...
peut etre que le robot remplirais le champ en fonction de la formule de commentaire et donc on pourrais empêcher l'inscription
(cela reste tout de meme a tester !!)
autre idée :
les robot ne peuvent pas faire "fonctionner javascript" a ce que j'ai pu comprendre...
alors écrivons la question (en toutes les lettres) en javascript)
encore une idée : "si vous êtes 1 humain veuillez cocher la case 2" (bon ok la encore c'est du stupide mais bon peux etre que cela peux marcher)
on pourrais encore chercher beaucoup d'idées (surtout avec l'ajax ...)
je pensais a: placez les images (triangle , etoile ..)dans les formes qui leur conviennent (bon ok les visiteurs se croiraient en maternelle)
voilà! je proposerais encore d'autre idées farfelues quand j'en aurait le temps
Je vois pas pourquoi tu te casse la tête : un capcha bien fait n'est pas décodable par un bot.
Quand tu vois des bots faire péter des codes antis robots c'est que le code lui même est merdique, la plupart du temps c'est des truc genre :
il y a une barre horizontale sur le texte (waaoo, efficace..)
les lettre sont oblique et même qu'elle on pas toutes la même police d'écriture ! (c'est sur c'est indecodable..)
on place une image par dessus le texte, et comme on est compatisant avec les bot on met toujours la même..
on ajoute plein de couleur sur les lettre pour faire un capcha multi-color qui va rien empecher du tout
on modifie les lettres pour les transformer en gruillère, miracle les bot analysent les contour et pas les textures
Attention ca c'est mes préférés : on met le texte tel quel sans aucune modification sur l'image, et en plus avec une police standar bien connus de tous les robots comme arial ou microsoft sans sherif
Si tu veux un bon capcha t'as cas en faire un comme sur le SdZ ou avec des déformation comme des carreaux ed verres et etc
Le problème du javascript, c'est que, comme dit plus haut, s'il n'est pas activé par le navigateur, ça empèche l'inscription (embétant).
J'ai compris le principe du captcha mais à mon avis, je serais incapable d'en faire un qui soit tip top et qui complique la vie aux robots et pourtant je ne suis pas quelqu'un de feignant qui met de la mauvais volonté
J'ai fait ce script, bon ça vaut ce que ça vaut mais ça devrait déjà être assez enquiquinant pour les bots et pui j'ai beaucoup de travail sur la suite du code donc je ne peux pas me permettre de passer trop de temps sur un processus anti-bot pour l'instant
<?php
function get_antispam()
{
$questions = array(// D'abord on s'occupe de mettre les questions aléatoires dans un tableau //
'question1' => 'Quel est le dernier chiffre ?',
'question2' => 'Quel est l\'avant-dernier chiffre ?',
'question3' => 'Quel est le plus grand chiffre ?',
'question4' => 'Quel est le plus petit chiffre ?',
'question5' => 'Remettez les chiffres dans l\'ordre',
'question6'=> 'Additionnez tous les chiffres',
);
$question_aleatoire = array_rand($questions, 1); // On en choisit une au hasard //
Les questions tournant (d'ailleurs si vous avez des idées de questions pour les chiffres de 1 à 9, n'hésitez pas ) et l'ordre des chiffres également, ça risque de ne pas vraiment l'aider le bot.
Je cherche une solution pour afficher dix chiffres ou nombre par exemple pris au hasard entre 1 et 100 mais sans que ça ne m'affiche tout de 1 à 100 si quelqu'un sait, son aide sera la bienvenue
"Striker : Surely you can't be serious. Rumack : I am serious... and don't call me Shirley."
Pourquoi pas poser une question simple du style : Combien font 7 plus 7 ? (écrivez le resultat en lettre)
en sachant que le resultat en lettre est inscrit bien au chaud sur une base de donnée ?
les Robot vois la base de donnée, combien de chance aurais un robot de trouver la solution ?
Enfin je ne sait pas à quelle point ils sont intélligent
merci
Ça pose beaucoup plus de problèmes à l'utilisateur qu'au robot...
Sinon, les robots peuvent très bien interprêter le Javascript, Java, Flash... Tout ce que tu peux faire, le robot peut le faire. La seule chose qu'ils ne font pas encore, c'est raisonner comme un humain.
D'accord, alors que pouvons nous faire de concrait ?
sauf peu etre accepter les commentaires avant l'affichage...?
mais bon c'est aussi contraignant, il faudrais poser une question du genre (comme les question de Qi) alors, mais ne sachant pas comment un robot fonctionne, je me dit que si il ne raisone pas comme des humain alors on devrais poser des question pour les humain :
Les bulldog son des chiens, tout les chiens on obligatoirement une queue, peut-on en conclure que tout les bulldog on une queue ? (Si oui écrivez bulldog dans la case d'en dessou)
En sachant que le resultat encore une fois est sur la base de donnée en crypté, ou sinon qu'il est carrément sur une base de donnée extérieure ?
est ce que cela pourrais fonctionné ?
(je ne conner rien du tout en robot je pose des questions simple)
× 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.
"Striker : Surely you can't be serious. Rumack : I am serious... and don't call me Shirley."
"Striker : Surely you can't be serious. Rumack : I am serious... and don't call me Shirley."
"Striker : Surely you can't be serious. Rumack : I am serious... and don't call me Shirley."
"Striker : Surely you can't be serious. Rumack : I am serious... and don't call me Shirley."
"Striker : Surely you can't be serious. Rumack : I am serious... and don't call me Shirley."
"Striker : Surely you can't be serious. Rumack : I am serious... and don't call me Shirley."
"Striker : Surely you can't be serious. Rumack : I am serious... and don't call me Shirley."
"Striker : Surely you can't be serious. Rumack : I am serious... and don't call me Shirley."
"Striker : Surely you can't be serious. Rumack : I am serious... and don't call me Shirley."
"Striker : Surely you can't be serious. Rumack : I am serious... and don't call me Shirley."
"Striker : Surely you can't be serious. Rumack : I am serious... and don't call me Shirley."