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

Langage PHP Discussion :

jeton de sécurité-token


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 110
    Points : 49
    Points
    49
    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 éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 043
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 043
    Points : 8 075
    Points
    8 075
    Billets dans le blog
    17
    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 éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    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
    Membre du Club
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 110
    Points : 49
    Points
    49
    Par défaut
    Laquelle des deux clefs est modifiée ?
    La session prend une autre valeur.

    mon code est fait comme ca.
    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
     
    <?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 éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 043
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 043
    Points : 8 075
    Points
    8 075
    Billets dans le blog
    17
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if( $_POST['$key'] == $_SESSION['key'])
    Normal le $_POST['$key'] ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['key'] = $key;
    A ne pas faire systématiquement comme dit par ascito.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <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
    Membre du Club
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 110
    Points : 49
    Points
    49
    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 : 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
     
    <?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

Discussions similaires

  1. erreur "jeton de sécurité"
    Par jff42 dans le forum Configuration
    Réponses: 2
    Dernier message: 29/06/2011, 18h32
  2. Réponses: 2
    Dernier message: 24/05/2010, 19h19

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