Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6
  1. #1
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    avril 2012
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : avril 2012
    Messages : 98
    Points : 15
    Points
    15

    Par défaut jeton de sécurité-token

    Bonjour,
    J'ai mis en place un systeme de token sur mes formulaire, je genere une clée aléatoire, je l'insere dans une session puis dans un champ caché de mon formulaire, une fois le formulaire envoyé je compare la valeur de la session avec la valeur du champ caché:
    ca marche tres bien mais j'ai un petit soucis avec mes formulaires lorsque l'utilisateur appui plusieur fois sur le bouton "envoyer" , le champ caché du formulaire et la session ont alors 2 clées différentes..

    quelqu'un a une petite solution?

    j'ai rajouté un script qui permet de valider une seule fois le formulaire, mais bon le javascript ca se désactive, si quelqu'un a une petite idée de la manière dont il faut s'y prendre je suis preneur

  2. #2
    Expert Confirmé Avatar de Séb.
    Profil pro
    Inscrit en
    mars 2005
    Messages
    3 224
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mars 2005
    Messages : 3 224
    Points : 3 749
    Points
    3 749

    Par défaut

    lorsque l'utilisateur appui plusieur fois sur le bouton "envoyer" , le champ caché du formulaire et la session ont alors 2 clées différentes..
    Laquelle des deux clefs est modifiée ?
    Comment gères-tu tes clefs ?
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Membre émérite

    Inscrit en
    juin 2007
    Messages
    679
    Détails du profil
    Informations forums :
    Inscription : juin 2007
    Messages : 679
    Points : 832
    Points
    832

    Par défaut

    Tu pourrais juste vérifier que pour la session courante, le token dans la session n'a pas encore été créé, et si c'est le cas ne pas écraser l’ancienne valeur comme tu as l'air de le faire .
    Conception / Dev

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    avril 2012
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : avril 2012
    Messages : 98
    Points : 15
    Points
    15

    Par défaut

    Laquelle des deux clefs est modifiée ?
    La session prend une autre valeur.

    mon code est fait comme ca.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <?php
    //on compare la valeur du post avec celle de la session
    if( $_POST['$key'] == $_SESSION['key'])
    {
    // tout est ok on continue le traitement
    }
     
    //je genere ma clé avant le formulaire:
    $key = md5(random_str(20));
    $_SESSION['key'] = $key;	
    ?>
     
    //je la met dans le formulaire dans un champ caché
    <form action="">
    ...
    <input type= "hidden" name="Secure" value="<?php echo $key; ?>" />
    </form>

  5. #5
    Expert Confirmé Avatar de Séb.
    Profil pro
    Inscrit en
    mars 2005
    Messages
    3 224
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mars 2005
    Messages : 3 224
    Points : 3 749
    Points
    3 749

    Par défaut

    Code :
    if( $_POST['$key'] == $_SESSION['key'])
    Normal le $_POST['$key'] ?

    Code :
    $_SESSION['key'] = $key;
    A ne pas faire systématiquement comme dit par ascito.

    Code :
    <input type= "hidden" name="Secure" value="<?php echo $key; ?>" />
    Plus haut le champ s'appelait $key ou key, ici il s'appelle Secure. Traitement intermédiaire ?
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    avril 2012
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : avril 2012
    Messages : 98
    Points : 15
    Points
    15

    Par défaut

    oui dsl probleme de copier coller,
    c 'est bien
    if($_POST['Secure'] == $_SESSION['key'])

    Tu pourrais juste vérifier que pour la session courante, le token dans la session n'a pas encore été créé, et si c'est le cas ne pas écraser l’ancienne valeur comme tu as l'air de le faire .
    D'accord, oui effectivement le token change a chaque fois que la page est raffraichit, ca donnerait donc quelque chose comme ca?
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <?php
    if( $_POST['Secure'] == $_SESSION['key'])
    {// tout est ok on continue le traitement
    }
     
    if(empty($_SESSION['key']))
    {	
    $_SESSION['key'] = md5(random_str(20));;	
    }		
    ?>
    //je la met dans le formulaire dans un champ caché
    <form action="">
    ...
    <input type= "hidden" name="Secure" value="<?php echo $_SESSION['key']; ?>" />
    </form>

    faut il donner une limiation dans le temps ? que la session contenant la clé unique sois supprimé au bout d'un certain temps ? ca change quelque chose au niveau de la sécuritée ?

    Merci pour vos réponse en tout cas

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •