Voici une petie suggestion pour commencer par etre un peu plus respectueux des normes d'accessibilité.Il aurait été préférable bien sur d'un fichier css externe mais bon voici ce que donnerait le formualaire :
<html>
<head>
body{
font-family:Comic Sans Ms;
font-size:12pt;}
.Color{
color:#ff0000;
}
</head>
<form name= "code" id="Code" method="post" action="test.php">
Veuillez saisir le code affiché ci-dessous dans la zone "code".
Attention : Veuillez saisir les lettres en majuscules et non en minuscules !
@STELLA2809
est ce que tu as copié le fichier de police dans le dossier ou se trouve le script qui génère l'image ?
Ton problème d'affichage peut éventuellement venir de là.
Merci pour ce code!!!
Pour une fois que je n'ai pas passé 3 heures à chercher sur google ;)
@METIS15:
echo '<script type="text/javascript">window.location="http://tonsite.com/tapage.php</script>';
Bonjour toul'monde,
je préviens,je suis incapable d'écrire quoique ce soit en code. Bon, cet antispam me conviendrait pour un formulaire qui doit envoyer les nom, téléphone, email et objet sur une adresse email de mon choix.
Quelqu'un peut-il m'ajouter ce qu'il faut, tout prêt ? (;o)))))
Dans le code de la page test.php :
<?php
require_once('antidot.php');
$verify = new ImageVerify;
//Vérification de la saisie
if (isset($_POST['Envoyer']))
{
$bon = $verify->verifyString($_POST['nom']);
if ($bon == true) { echo "OK!!!!!"; } else { echo "Bad!!!!"; }
}
?>
Je peux remplacer...
echo "OK!!!!!";
par un autre texte de mon choix pour remercier la personne d'avoir transmis sa demande, en reservant la même page... ou une autre ? Mais comment une autre ?
Pour répondre aux problème des mals voyants :
vous pouvez utiliser l'image et en parallèle mettre du son.
C'est pas plus compliqué que cela : ainsi le code sera entendu et lu.
Salut, un petit probleme qui revient regulierement auquel pas de reponse: l'image s'affiche mais pas les caracteres d'ou cela provient? sinon le code à l'air efficace bravo à l'auteur^^
non je suis aps d'accord.... c'est limite idiot comme billet en plus... evidement que la securisation n'est pas parfaite mais comme il l'indique, tu peut appeller les methodes # $_SERVER['HTTP_VIA']
# $_SERVER['HTTP_X_FORWARDED_FOR'] pour verifier l'etat d'un proxy et au pire, tu bloques les inscriptions pendant 10 sec apres chaque enregistrement... et puis je sais pas si tu vois mais quand meme, l'utilisation en masse de proxy n'est pas forcement evidente et rejoins mon avis sur lespirates chevrones... ni plus ni moins. Le seul but c'etait de proscrire les bots et cela fonctionne malgre tout... certes ce n'est pas parfait mais apres ou va-t-on ?? et pour les certificats, je n'y connais pas grand choses donc je peut pas dire...
Tu veux faire un algo qui demanderaient trop de ressources. Ce serait trop se prendre la tête comme système de sécurisation. Un bon moyen serait une authentification avec certificat par HTTPS et encore.
je pense quand meme que certains sites se prennent vraiment la tete (toujours hotmail pour reference) pour la generation d'images... En fait, pour mieux comprendre pourquoi, il y a avait un article dans The Hacademy Journal qui expliquait les parades a ce genre de securite. Il etait explique que certains logiciel (notement 1 en open source - forcement :p) sont capables de "lire" ces images en suivant les lignes et en essayant de "deviner" suivant les traces des lettres. D'ou l'interet de mettre des couleurs differentes ainsi qu'un fond generant du bruit dans l'image (quelqu'un l'a mentionne ici meme je crois). L'interet egalement de lier les lettres entre elles afin que le programme est du mal a savoir ou les lettres s'arretent.
Je pensais a une methode toute bete mais empirique afin d'eviter tous les floods : je pensais a l'enregistremet de l'adresse ip du visiteur avec un timestanp attache. Le probleme est que si le site est pas mal frequente et que plusieurs utilisateur passant par le meme proxy (reseau d'entreprise par exemple) s'enregistre en meme temps, il va y avoir du refoulage a l'entree ^^
Il faudra peut etre se contenter d'une telle solution (tout depend des parametres de frequentations du sites, ect ... ) mais cela permettrait du coup d'arranger pas mal de sauces... si en plus on y ajoute une chtite image mais correctement gere (c'est a dire avec des lettre correctement forme en tres gros caracteres sans melange de couleurs sur fond noir), je pense qu'on pourrait y trouver un bon compromis. Sa serait evidement pas inviolable aux yeux d'un pirate chevrone mais sa permettrait de retressir le champ d'action des bots.... Et si jamais on elimine l'idee d'enregistrer une ip, on peut toujours se contenter des images mais en "faintant" les logiciels d'audits en utilisant que la methode setpixel de gd afin de "dessiner" a la main les caracteres... c'est tres dur (faut pas le cacher) mais au moins les lettres pourront etre tres facilement lisible par une personne potentiellement en difficulte tout en deroutant les prog d'analyses qui ne verront aucune ligne continue... ce n'est qu'une supposition et je ne connais pas l'avance de ce genre de progs mais je pense que dans un premier temps, sa ne serait pas une mauvaise idee ....
Maintenant reste a coder un algo capable de dessiner pixel par pixel une lettre ou un chiffre tout en gardant suffisament d'espace entre chaque point.... les paris sont ouvert :-)
J'ai consulté de nombreux sites sur les images anti-spam; à mon sens, ce n'est pas assez vulgarisé. Pas assez d'explication quant à la mise en place de ce procédé O combien efficace pourtant.
N'y aurait-il pas moyen de faire comme sur le site ci-dessous un clavier virtuel ? Pour quelqu'un qui Maîtrise bien Javascript ce ne serait pas un problème! Le défit est-il lancé ???
J'aurais pensé à un captcha audible. Genre, lorsque l'on clique un lien, un mot généré aléatoirement est épellé lettre à lettre. Le visiteur devra donc réécrire les lettres qu'il a entendues dans le champ. Soucis, ce n'est pas accessible aux personnes sourdes, muettes et malentendantes ainsi qu'aux personnes ne disposant d'une sortie audio sur leur machine. Il faudrait se pencher sur une version mixte texte / son ou image / son. Je ne sais pas, c'est à réfléchir.
Merci pour ta reponse webdeb, j'aime quand les commentaires sont bien penses comme le tiens ^^. Pour ta reponse, non je ne fais evidement pas de site aussi important mais j'ai une politique particuliere en me disant que si devait etre amener a faire un site dans ce genre (ce qui est loin d'etre improbable), je vais etre pret. Ce n'est pas du jour au lendemain qu'on code de facon securise et il y a toujours un petit truc auquel on ne pense pas (tu l'illustre parfaitement d'ailleurs : batir un mur et se faire attaquer par le ciel). Un code sur lequel j'ai passe beaucoup de temps a travailler dessus me fait bondir 1 mois apres car je n'avais pas vu une faille (alors que j'ai essaye de faire le tour ...). Je suis d'accord egalement avec toi lorsque que tu dis ne pas arriver a lire certains images. Je prend l'exemple du site de hotmail en exemple qui m'a tellement gave que j'ai finis par creer un email ailleurs pour pouvoir me connecter a msn... Je comprend aussi le fait qu'il ne faut faire aucune discrimination mais a ce moment la, comme je le disais dans mon 2e post, il faut arriver a trouver une solution aussi fiable que les images tout en gardant l'accessibilite a tous... et la je seche !
Si tu as des idees (autres que celle que tu as proposes que je juge inapropries dans pas mal de cas - ce n'est que mon avis), je suis entierement a ton ecoutes afin que l'on puisse parer ensemble ce genre de probleme.
L'image est certes efficace mais toujours aussi difficile à exploiter même pour des personnes non handicapées. Pour ma part, même avec une excellente vue, j'ai du mal à interprêter certaines de ces images dans lesquelles on n'arrive pas parfois à distinguer correctement un zéro d'un O, un L d'un I...
Cela devient énervant lorsque l'on recommence 3 fois l'opération en confondant des lettres ou des chiffres. Ainsi, si moi j'ai du mal alors je me demande comment les personnes qui portent seulement des lunettes ou des lentilles arrive à ne pas péter un plomb devant ce genre de situation.
Je reprends une citation de l'inventeur du Web Tim Berners Lee qui dit ? La richesse d'internet réside dans son universalité. Il est essentiel que chacun, handicapé ou non, puisse y avoir accès.?. Pourquoi vouloir exclure des personnes au détriment de quelques petits robots. La sécurité est certes importante mais l'accessibilité l'est également. Les deux peuvent très bien fonctionner simultannément sans avoir recours à des solutions farfelues gourmandes en ressources comme la génération d'images. Je doute que lorsque l'on fait un petit site perso, on se soucie beaucoup de la sécurité. D'ailleurs, je doute que les webmasters qui créent leur petit site perso dans leur chambre programment un minimum correctement et qu'ils n'excluent la moindre faille. J'en fais partie, je ne suis pas un spécialiste en programmation. Je cherche cependant toujours à assurer une sécurité minimale en prenant le soin de faire attention aux failles les plus répandues de PHP dans la mauvaise utilisation du langage. Je parle ici de l'injection SQL, de la faille liée aux includes ou encore à l'upload mal contrôlé. Toutes ces failles ne viennent pas du langage en lui même mais des programmeurs qui n'y prêtent pas suffisamment attention et pourtant ce sont des entrées très fréquemment exploitées qui permettent de pirater un site sans grande difficulté.
Donc Jean84, quand tu nous parle d'exclure les personnes handicapées au profit de la sécurité de ton site, je trouve ça déplacé. Je pense que tu te fais un peu trop de paranoïa au niveau de la sécurité. La probabilité de se faire pirater son site existe, je suis d'accord mais les pirates ne cherchent généralement pas à pirater des sites persos. Si tu me disais que tu faisais un site pour une banque ou bien un site de vente, alors l'argument sécurité prendrait le pas sur celui de l'accessibilité. Mais je doute que tu en sois à ce niveau là! Peut-être me trompe-je ?
Pour en revenir aux robots, il existe des parades au niveau des fichiers .htaccess pour contrôler leur arrivées sur un site. Donc il est toujours possible d'exclure des robots d'accéder à un site. Des listes de robots spammeurs existent sur Internet ainsi que des scripts pour fichiers .htaccess. Il faut juste s'y intéresser et les utiliser. Aucune sécurité n'est fiable à 100% donc cela ne sert à rien de vouloir construire des murs alors qu'un intrus pourrait venir par le ciel !!! (c'est beau lol).
Essayons plutôt de rendre nos sites accessibles sans toutefois laisser la sécurité de côté bien entendu.
en fait il faudrait reprendre le principe de l'image mais l'associe au question : arriver a generer un couple question / reponse sans savoir la reponse (les images on ne les connait pas d'avance) comme sa, si c'est bien realise, on pourrait arriver tromper l'enemis (lol)....
tant mieux chacun est en droit d'avoir ses opinions :-) mais je suis du meme avis que coucou747 a savoir que ta base de donnees pour un truc de ce genre doit etre tres importante (on parle de centaines de questions et encore...) parce sinon, tu risques d'avoir des surprises... pour t'en convaincre, renseigne toi sur un logiciel qui s'appelle Brutus et qui est capable d'analyser et de comprendre un formulaire (et en plus c'est un executable donc pas besoin de scripts ..) afin de le flooder ou de contourner ses protections... ou alors (et la par contre sa serait interessant), partir sur la base du genre combien font cinq + deux mais prendre des valeurs au hasard et trouver une correspondance entre les lettres et les chiffres afin de les generer au hasard.. mais la encore les bots peuvent apprendre l'astuce ... il faudrait y reflechir a sa ...
Salut !
sympa la source, exactement ce qu'il me fallait merci ;-)!!!
Je voulais prendre part a la petite discution sur les images prohibitives pour les handicapes. Dans le fond vous avez entierement raison, a savoir qu'il ne faut pas exclure les gens pour leurs handicap (ou a cause je ne porte pas de jugement) mais il faut quand meme etre realiste : si on fait sa c'est avant tout pour ne pas se faire (excusez moi de l'expression) pirater la gueule... les bots deviennent de plus en plus intelligent et efficaces (intelligent dans le sens ou ils sont bien codes et savent executer des actions complexes) et la solution la plus performante en ce moment, c'est la lecture via photo et je dois dire (au risque d'en choquer certains) que malgre que je comprenne parfaitement que le fait d'ecarter (volontairement ou pas) certaines personnes a cause de leurs handicap n'est pas excusable, je prefere etre amener a choisir cette option plutot que de trouver une solution interemediaire pouvant mettre a mal la securite de mon site ainsi que son integrite. Et puis en reflechissant bien, il n'est pas du tout possible de tout prevoir et il n'est pas rare de nos jours que les sites soient parfois dependant d'un navigateur... bien que le css2 et les dernieres version de nos browsers favoris commencent a dissiper les malentendus entre feuilles de styles ou balises esoteriques, je n'ai pas envie de coder mon site pour les personnes utilisant IE 4 (sa existe encore enormement) ou nestcape 6.0 (ceux qui ont utilises les feuilles de styles sur dreamweaver 2004 comprendront pourquoi je designe ce navigateur) ou tout simplement les irreductibles qui se promene encore avec des browser en mode texte... faut-il renoncer a toutes nos belles interfaces web utilisant du flash ou des css de 500 lignes chacunes ?? je comprend facilement que le rapprochement n'est pas evident a faire et qu'il reste le facteur humain aussi je pense qu'avant de vouloir opter pour une solution de rechange, il faut bien etudier la question en se demandant si vraiment notre site sera susceptible de recevoir des internautes qui potentiellement , ne pourront pas exploiter le contenu de nos pages...
En esperant n'avoir ennuyer personne, bravo encore une fois pour la source et @++
Il faut que tu arrives à mettre en session le code aléatoire de l'image qui a été généré. Puis sur ton autre page, tu testes la session. Si ta variable de session contient la même valeur que ce qui a été posté par le visiteur alors c'est bon sinon ce n'est pas bon.
Certaines réponses prêtent à sourire. En effet, je crois que certains n'ont pas bien compris le sens de ma question, C'est sans doute moi qui me suis mal exprimé et je m'en excuse!!!
Mais je parle aux noms de tous les débutants qui posent une question de débutant et qui obtiennent des réponses inadaptés. Pourtant ma question est simple. Après avoir rempli le formulaire HTML, je passe sur la page "test.php" et je voudrais si le résultat est correct passer sur ma page "formmail.php" et non pas avoir comme résultat un "Bad !!!!" ou un "Ok !!!!"
Je suis sur que quelqu'un aura la bonne réponse.
Merci à tous aux noms des débutants.
Cordialement
Merci pour ta réponse.
Je possède un formulaire HTML qui après être rempli et validé par une touche "Envoyer" va sur une page en PHP qui me fait parvenir les informations et va sur une autre page HTML de remerciement.
Pour l'instant rien de compliqué. La question que je pose c'est que je ne sais pas avant la validation de la première page où je dois mettre la "Class anti spam".
Tu l'insères où tu veux dans ton formulaire à l'endroit où tu veux faire apparaître l'image. Il faut aussi que tu ajoutes un champ supplémentaire pour que le visiteur puisse taper ce qu'il voit dans l'image.
Bonjour à tous.
Après essais, ce code fonctionne parfaitement et je le trouve vraiment très bien adapté aux spams. Seulement étant débutant, j'aimerais savoir dans quelle partie de mon formulaire je dois l'insérer?
Cordialement
Al.
Je suis personnelement anti-image tordues :p
Quand je fais un site j'essaie de maximiser l'accessibilité (XHTML, balises comme il faut etc...) et cette méthode me donne des boutons personnelement.
Attention je ne mets pas en doute la pertinence ou la qualité du script (je vais mettre une bonne note, pas 10 de par l'idée d'image tordue), juste le concept, ce n'est pas accessible, donc je n'aime pas.
Une alternative textuelle serait pour moi une perte de temps et dommageable pour le visiteur souffrant d'un handicap. Une perte de temps car autant faire un site accessible pour tous des le départ, dommageable parce que, comme Webdeb, je ne suis pas sur que le visiteur apprecie ce systeme.
>> Pour les plus reticent ,vous pouvez toujoours afficher un message destiné au mal voyant qui les redirige vers la question simple.
Comment tu le sais que tes personnes sont mal voyantes ? Tu veux leur proposer un lien en plus à cliquer du genre :
"Si vous êtes mal voyant ou handicapé, veuillez cliquer ici svp !"
Ca ne se fait pas trop... Je suis plutôt d'avis pour une seule et même version accessible pour tous ! Si ton visiteur est atteint d'une paralysie ou qu'il a de fortes difficultés motrices et que tu lui demandes de cliquer un nouveau lien parceque le formulaire auquel il accède ne lui ai pas destiné, je doute qu'il apprécie. Pour lui, ce sera un effort important d'aller chercher et cliquer cet autre lien alors que pour une personne "en pleine santé", ce ne sera qu'une histoire de quelques dixièmes de secondes.
je suis tout a fait d'accord.Pour les plus reticent ,vous pouvez toujoours afficher un message destiné au mal voyant qui les redirige vers la question simple.
Je vais modifier ca tout de suite!
webdeb, t'as interet de ne pas publier ta base de donnée de questions... et t'as interet de la faire chargée parceque le robot actualise et remplis les questions, et ensuite quelqu'un place les réponses, et hop...
Je n'ai pas testé ce code mais j'ai un avis assez personnel sur cette méthode de validation de formulaire. Je ne suis pas fan des images de validation telles que celle-ci pour une simple et bonne raison : l'accessibilité.
Si vous demandez à une personne handicapée visuelle ou physique de valider une inscription sur un site par ce biais là, elle risque de ne pas pouvoir déchiffrer le code inscrit dans l'image. De même, si elle utilise un navigateur spéciaux qui supprime les images et ne restitue que le contenu texte. Elle serait alors privée de toute inscription sur le site qu'elle désire.
Une alternative intéressante est alors le captcha textuel. Vous posez une question super simple à l'internaute qui connaîtra la réponse sans hésiter. Voici quelques exemples :
Combien font deux plus trois ?
Qui est le fidèle compagnon animal de Tintin ?
Dans un champ texte, votre visiteur n'a plus qu'à donner la réponse (5, milou). Afin d'éviter les inscriptions de robots, il est préférable de stocker plusieurs couples questions / réponses dans une table sql et d'en afficher une prise au hasard dans le formulaire. Vous testez la réponse donnée avec celle de la table. Si c'est ok le formulaire est validé sinon on reprend une nouvelle question au hasard.
Que pensez-vous de cette méthode bien plus simple, plus accessible et moins gourmande en ressources qu'une image à générer dynamiquement ?
il faut enlever le .ttf a la ligne 151 et le probleme sera resolu!ceci est du a la version de gd installé sur votre serveur.
Oubliait aussi mon commentaire d'avant.le header est obligatoire pour l png pas pour le jpeg!!!
moi j'ai plutot l'impression qu'avant de faire le session start il faudrait faire le
header ("Content-type: image/jpeg");
en effet la classe ne presente pas du tout cette ligne qui est "obligatoiretement"a placer en debut de script (oubliez les espaces )sous peine d'avoir un message d'erreur du type headers already put by .
je pense que le probleme d'affichage vinedrait de la !!
Qu'en pensez vous?
"Véifie que le fichier font (comic.ttf) est bein écrit en minuscule"
> oui tout est bien écrit en minuscule ... malheureusement l'image n'apparait toujours pas ... y a comme qui dirait une anguille là ;S
"Warning: imagettftext(): Could not find/open font in /var/www/sdc/6/6/charlico/antidot.php on line 150" signifie qu'il ne trouve pas le fichier font.
Véifie que le fichier font (comic.ttf) est bein écrit en minuscule car PHP différencie les majuscules et minuscules.
A part ça je ne vois d'où cela peut venir.
A+,
ton script a l'air vraiment bien mais l'image ne s'affiche pas.j'ai easy php 8 et j'ai activé gd .quand je fais un clic droit sur l'image etafficher l'image ,j'obtiens des messages d'erreurs tels que:
Warning: imagettftext(): Could not find/open font in /var/www/sdc/6/6/charlico/antidot.php on line 150
Warning: imagettftext(): Could not find/open font in
Pourtant je n'ai pas touché tes sources et le .ttf est bien sur mon compte ftp .
Desolé si j'ai l'air d'un boulet mais je commence un peu en php.
merci d'avance
Salut !
J'etais super content de trouver tons script, j'en ai bien besoin mais j'ai trouver la faille. Quand je demande les propriétés de l'image, ça me donne :
.../phpcs_source_38043/antidot.php?action=print&string=V5WC7G
Et string si je ne me trompe pas string=V5WC7G est le mot de passe ?!
Donc, c'est mort, désolé !
j'ai utilisé ton code, mais l'image ne s'affiche pas !!!!!
comment je fais ?
si vous pouvez m'aider ce serait gentil
<html>
<head>
body{
font-family:Comic Sans Ms;
font-size:12pt;}
.Color{
color:#ff0000;
}
</head>
<form name= "code" id="Code" method="post" action="test.php">
Veuillez saisir le code affiché ci-dessous dans la zone "code".
Attention : Veuillez saisir les lettres en majuscules et non en minuscules !
<?php
$_SESSION['string'] = $verify->createString($charset);
$_SESSION['md5_string'] = md5($_SESSION['string']);
?>
* : <label for =\"nom\"> Code :</label>
</form>
</html>
qu'en pensez vous??
Es-tu bien sûr d'avoir le comic.ttf dans le même répertoire que ton script? :-)
@++
R@f