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 :

Comment gérer la modification d'un mot de passe MD5 ?


Sujet :

Langage PHP

  1. #1
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut Comment gérer la modification d'un mot de passe MD5 ?
    Bonjour à tous,

    J'ai un formulaire permettant l'ajout et la modification d'un compte membre.
    Le mot de passe est enregistré en MD5 dans la BDD.

    Pour l'ajout pas de problème... ma procédure d'ajout, vérifie l'existence du mdp, du mdp de confirmation, que mdp == mdp de confirmation et que mdp != "" comme montré ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if ( isset($_POST['mdp']) && isset($_POST['mdp2']) && ($_POST['mdp']===$_POST['mdp2']) && ($_POST['mdp']!='') ) {
    	// OK
    } else {
    	// erreur
    }
    Par contre, en raison du mot de passe MD5, je ne sais pas comment procéder avec le formulaire pour la modification.

    Quelqu'un pourrait-il m'expliquer comment il procède...
    Merci d'avance

    @ bientôt

  2. #2
    Membre confirmé

    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2006
    Messages : 317
    Points : 597
    Points
    597
    Par défaut
    je fais ainsi :

    je demande le mot de passe courant
    je demande le nouveau mot de passe
    je demande l'ancien mot de passe

    Ainsi, on valide que l'utilisateur qui modifie son mot de passe le connait bien.
    Apres, tu peux aussi envoyer un mail a la rigueur à la personne avec son nouveau mot de passe (avant de l'encoder en md5)

    Par rapport à ce formulaire, d'autres sécurités peuvent etre ajouté mais ça ca correspond moins à l'identification qu'a la sécurité standart d'un formulaire

  3. #3
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    oui alors je crois que je me suis mal fait comprendre...

    en fait, je souhaite que dans un seul et même formulaire, gérer le fait que le mot de passe peut ou non être modifié.
    Par exemple, un membre s'inscrit à l'instant t, une semaine plus tard, il se reconnecte pour changer d'email (sans modifier le mot de passe) et un mois plus tard, il met un nouveau un mot de passe.
    Il faut donc gérer la possibilité d'un envoi de formulaire sans ou avec mot de passe en mode "modification" du compte.

    A y réfléchir, je viens d'avoir un flash...

    En mode "modification" : les champs mdp et mdp2 sont vides (le membre est déjà authentifié : il connait donc déjà le mdp)
    En réception du formulaire, il suffit de tester mdp et mdp2. S'ils sont tous les deux vides, alors le mot de passe n'est pas à modifier, sinon modification du mdp. L'inconvénient est qu'il faille utiliser 2 requêtes UPDATE pour gérer ces deux cas...

    Qu'en penses-tu ?

  4. #4
    Membre confirmé

    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2006
    Messages : 317
    Points : 597
    Points
    597
    Par défaut
    Attention, c'est une operation dangereuse le changement d'un mot de passe.

    En considérant que l'utilisateur est autentifié, tu ouvres 2 grosse failles de sécurité:
    - une CSRF : un utilisateur X (pirate) peut utiliser un script javascript pour provoquer l'envoi par l'utilisateur A d'un formulaire de changement de mdp à son insu. Elle peut etre evité par un token celle la
    - une plus légère, supposons que l'utilisateur A est dans un cybercafé, il est quitte sa session du pc mais oublie d'en effacer les traces. l'utilisateur B se connecte sur le site et voit que la session du site est encore ouverte et se depeche de changer le mdp. A n'aura plus acces à sa session. Celle la peut etre evité seulement en demandant le mot de passe.

    Pour le changement d'un mot de passe ou de tout autre information utilisateur, il est courant d'utiliser de redemander le mdp et d'utiliser un token d'identification limité dans le temps.

    Pour l'inconvenient des 2 requetes UPDATE, c'est le genre de chose qui a tres peu d'importance. L'optimisation des requetes SQL doit se faire dans les parties à hautes frequentations du site.
    Souvent les section envoies de données ne sont pas particulierement critique.

    Voila, tu as mon avis ^^

Discussions similaires

  1. Comment gérer les modifications sur un lot
    Par emeric2502 dans le forum Modélisation
    Réponses: 0
    Dernier message: 30/01/2015, 16h11
  2. Réponses: 0
    Dernier message: 20/04/2011, 15h51
  3. comment masquer la saisie "champ de mot de passe"
    Par black_code dans le forum Web
    Réponses: 7
    Dernier message: 21/08/2009, 11h51
  4. Comment proteger mon application par un mot de passe
    Par Sabrina_of_darkness dans le forum Langage
    Réponses: 9
    Dernier message: 01/04/2006, 23h46
  5. [batch]comment lancer un excel avec son mot de passe?
    Par victor.ward dans le forum Windows
    Réponses: 1
    Dernier message: 05/12/2005, 10h10

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