IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Code de captcha en JavaScript


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Par défaut Code de captcha en JavaScript
    Bonsoir à tous,

    J'ai trouvé cette source qui ma fois est plutôt sympa visuellement mais je ne vois pas ou s'effectue la vérification du code ?
    voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <html>
    <head>
    <script language="javascript" type="text/javascript">
    function getCaptcha() {
        var chars = "0Aa1Bb2Cc3Dd4Ee5Ff6Gg7Hh8Ii9Jj0Kk1Ll2Mm3Nn4Oo5Pp6Qq7Rr8Ss9Tt0Uu1Vv2Ww3Xx4Yy5Zz";
        var string_length = 5;
        var captchastring = '';
        for (var i=0; i<string_length; i++) {
            var rnum = Math.floor(Math.random() * chars.length);
            captchastring += chars.substring(rnum,rnum+1);
        }
        document.getElementById("randomfield").innerHTML = captchastring;
    }
    </script>
    <style>
    #captcha
    {
    height:38px;
    background-image:url(overlay1.png);
    background-repeat:no-repeat;
    font-size:25px;
    position:relative;
    }
    #captcha_gen
    {
    left:10px;
    top:3px;
    position:absolute;
    Font-family:Monospace;
    font-weight:bold;
    text-align:justify;
    }
    </style>
    </head>
    <body onload="getCaptcha();">
    <form name="randform">
    <table style="border:1px solid #ecece4">
    <tr><td colspan="2" align="center"><strong>Contact Us Form</strong></td></tr>
    <tr><td>Name</td><td><input type="text" id="txtname"/></td></tr>
    <tr><td>Contact no</td><td><input type="text" id="txtno"/></td></tr>
    <tr><td>Message</td><td><textarea id="msg" style="width:155px"></textarea></td></tr>
    <tr><td>Verify Yourself</td><td><input type="text" id="txtcode"/></td></tr>
    <tr>
    <td>
    </td>
    <td>
    <div id="captcha">
    <div id="captcha_gen">
    <label align="center" id="randomfield"></label>
    </div>
    </div><input type="button" value="Refresh" onClick="getCaptcha();"/></td></tr>
    <tr><td colspan="2" align="center"><input type="button" value="Submit" onclick="fnsubmit()"/></td></tr>
    </table>
    </form>
    </body>
    <html>
    je m'attendais ( je débute en java ) à trouver ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if ********* {
         return true;
         }
         alert ('Le résultat est faux !');
         return false;
          }
    et peut on reloader l'image sans recharger la page ?
    Je vous remercie par avance de vos éclaircissements et conseils
    cordialement scoubi

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Par défaut
    je pensais vérifier le captcha crée avec celui tapé dans le champ de saisie comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function Verif(){
            var d = document.getElementById('txtcode').value;
            var c = document.getElementById('getCaptcha').value;
            if (d == c) {
         return true;
         }
         alert ('Le captcha est faux !');
         return false;
          }
    mais ça ne fonctionne pas car je pense ne pas repérer les bonnes variables

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Euh. Ça sert à quoi un captcha vérifié en JavaScript ?

    L'idée n'est-elle pas, au départ, d'empêcher les robots d'entrer ? Tu te doutes bien que les robots ne vont pas exécuter un bout de JavaScript qui essaie de les repousser...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    il vaut voir la fonction fnsubmit
    mais je suis d'accord aucune vérifications côté client en javascript doit être considéré comme valide.
    Il faut tout vérifier côté serveur.
    Tout ce qu'un client envoie au serveur doit être vérifié par le serveur.
    La vérification côté client n'est là que pour sont confort.

    je constate que malheureusement de plus en plus on voit des site avec des widgets en tout genre qui offre au développeur des vérifications et celui-ci s'en contente. une bénédiction pour tous les crackers.
    les développeur oublient un peu trop que n'importe quoi peut se glisser entre leur pages web et leur serveur.

    un capcha en JS pour faire une démo d'un prototype d'IHM à un client pourquoi pas. mais au delà c'est un appel au piratage.

    A+JYT

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Par défaut
    Bonjour à vous deux et merci pour vos réponses,

    Si je me tourne vers le java c'est parce que je n'arrive pas à valider en php si le résultat est vrai ou faux.
    J'ai essayé une multitude de script, ils fonctionnent dans mon livre d'or mais quelque soit le résultat le message est quand même posté !
    car étant plus que débutant en php je n'arrive pas à programmer le return false et le return true.
    J'ai demandé une multitudes d'aide sur une multitudes de forums mais personne ne m'a dit bouges pas je vais t'expliquer comment par rapport à ton code gérer cet évènement, sauf une personne qui m'a dit qu'une partie devait être dans la page et l'autre sur le serveur.
    J'essaie donc de me retourner vers le java
    maintenant si vous pouvez me décoincer mon problème en php je suis preneur

  6. #6
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    le pincipe du captcha c'est que le message est posté
    le serveur récupère le post est vérifie la validité du message
    captcha mais ausi données
    si l'on des deux captcha où contenu est incorrect le message est refusé.
    en guise de réponse le form est alors réaffiché avec les données reçues, un nouveau captcha et des méssage d'erreurs.

    tu ne peux pas faire ça avec du javascript
    imagine que tu veuille le faire en deux temps
    tu envoie le à réponse au captcha au serveur indépendement du form
    le serveur teste est dit OK ou KO
    et en fonction tu envoie le message ou pas.

    un petit malin mets un point d'arrêt sur ton js coupe l'herbe sous le pied de l'envoie du captcha et mets directement ok dans la réponse.
    ton form est posté sans vérication.

    la seule solution qui marche c'est
    le serveur génère un captcha et garde côté serveur le résultat attendu.
    il envoie le html au client qui affiche le formulaire et l'image du captcha
    le client remplie le formulaire et réponds au captcha.
    il envoie le formulaire
    le serveur reçoit tout et vérifie le captcha
    si le captcha est ok il continue à traité le message
    s'il est ko il renvoie le form au client avec un nouveau captcha

    si tu cherche à n'importe quel moment du process à séparé le captcha du message tu ouvre une faille.
    A+JYT

Discussions similaires

  1. Code java dans du Javascript
    Par ahulane dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/05/2007, 09h44
  2. [PHP-JS] Equivalent du code PHP suivant en Javascript
    Par Sayrus dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 19/05/2007, 10h51
  3. Executer une portion de code uniquement si le javascript est actif
    Par Rakken dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 07/04/2007, 10h23
  4. Réponses: 2
    Dernier message: 07/07/2006, 21h11
  5. Deux code html choisi selon javascript
    Par franck.automaticien dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 30/06/2006, 09h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo