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

PHP & Base de données Discussion :

proteger une valeur rentré dans la table


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 184
    Par défaut proteger une valeur rentré dans la table
    bonjour,

    j'ai finaliser mon acces membre mais j'ai un soucis de securite qui se presente.
    j'ai ma page qui a une input login, mot de passe et confirmet mot de passe.quand l'utilisateur rentre son mot de passe et le confirme ,pas de soucis cela est bien update dans la table.
    mon soucis est le suivant si un utilisateur rentre le nom de la personne ,et rempli un nouveau password et le confirme, cela s'update également dans la table.y'a t'il une solution pour interdire l'ecriture dans la table si le champ est rempli?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if($password==$password2){
    	if($_POST['PASSWORD']==""){	
    		 $password= sha1($password);
    		 require_once("../connexionMysql.inc.php");					
    		 $login=$_POST['login'];					
                     $sql5=$pdo->prepare("UPDATE logins SET PASSWORD =:password where LOGIN=:login  " ) or die (print_r($pdo->errorinfo())) ;
                     $sql5->execute(array(
    			':login'=>$login,
    			':password'=>$password
    		)) ;	
    		 header("Location:login.php")	;
    	} else echo "le password est déja renseigné!";
    }else echo "Les mots de passe ne sont pas identiques!" ;

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 184
    Par défaut
    j'ai trouve la solution en faisant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql5=$pdo->prepare("UPDATE logins SET PASSWORD =:password where LOGIN=:login and PASSWORD='' " ) or die (print_r($pdo->errorinfo())) ;

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Cela reviendrait au même : ton utilisateur pourrait changer le mot de passe de tous les enregistrements qui n'ont pas de mot de passe.
    La bonne solution et de fournir à l'utilisateur un token (code aléatoire) qui est associé à son compte dans la base de donnée.
    En général on fournit simplement un lien avec le token en paramètre : motdepasse.php?token=dfjdskljlkjxw524
    Pour changer le mot de passe il faut donc connaitre le couple login/token (et evidemment on efface le token une fois l'UPDATE effectué).
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 184
    Par défaut
    merci pour cette information,aurrais tu un exemple concret pour voir a quoi cela ressemble?

    merci

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ce n'est rien de plus que ce que je t'ai décris : dans ta base de données tu inscris un code et tu le fournis à l'utilisateur.
    Dans la page de changement du mot de passe, tu vérifies que le token que l'utilisateur donne (en général en paramètre dans le lien comme indiqué au dessus) correspond à celui inscris dans la base de donnée.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Si c'est juste pour changer de mot de passe, en général, on se contente de demander l'ancien mot de passe puis le nouveau et la confirmation du nouveau, du coup, tu fais juste l'update du mot de passe de l'utilisateur ayant l'ancien mot de passe en lui affectant la nouvelle valeur.

    Ce que propose sabotage, c'est si l'utilisateur a perdu son mot de passe.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Apparemment il n'y pas de mot de passe sur certains comptes, donc ca revient à un mot de passe perdu.
    Tu peux aussi attribuer un mot de passe a tous les comptes n'en ayant pas et l'envoyer à chaque utilisateur correspondant.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Réponses: 11
    Dernier message: 05/03/2015, 08h53
  2. Réponses: 12
    Dernier message: 27/08/2007, 11h34
  3. Réponses: 17
    Dernier message: 23/07/2007, 11h31
  4. Saisir une valeur null dans 1 champ de ma table
    Par User dans le forum Bases de données
    Réponses: 3
    Dernier message: 16/03/2007, 23h40
  5. test d'une valeur stocké dans une table
    Par EssaiEncore dans le forum ASP
    Réponses: 3
    Dernier message: 18/02/2005, 11h39

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