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 :

Sécurité avec PDO [PDO]


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
    Juin 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 129
    Par défaut Sécurité avec PDO
    Bonjour,

    J'utilise pour la première fois PDO.
    J'ai compris que les requêtes préparées sécurisées des injections SQL.

    j'utilise le code suivant pour modifier un mot de passe d'un utilisateur:

    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
     
    try{
    $DB = new PDO('pgsql:host=localhost;dbname=local', 'postgresSQL', 'password');
    //afficher les erreurs car PDO n'affiche pas les erreurs par défaut 
    $DB->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
    }
    catch(PDOException $e){
    echo 'La base de donn&eacute;es n\'est pas disponible pour le moment.<br/>';
    }
     
    $sql='update administration set mdp=:mdp where login=:login';
    				$req=$DB->prepare($sql);
    				$req->execute(array( 'login' => $_SESSION['login'], 'mdp' => $_POST['nouveau_mdp'] ));
    				$retour=$req->fetch(PDO::FETCH_ASSOC);
    				echo('Modification du mot de passe effectuée<br/>');
    J'ai 2 questions:
    1 Le code est-il sécurisé (passer des _SESSION ou $_POST en variable à la reqête préparée ne pose pas problème)?

    2 Si je mets via un formulaire le mot de passe : "l'arc" je m'attendais à voir dans la base "l\'arc" et que le ' soit échappé par PDO. Or dans la base je vois "l'arc". Est-ce normal ?

    Merci

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    je t'invite a voir a quoi correspond les requêtes préparées
    http://dev.mysql.com/doc/refman/5.0/fr/sqlps.html


    par contre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $retour=$req->fetch(PDO::FETCH_ASSOC);
    ca sert a rien

  3. #3
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    le echo dans le catch ne sert pas à grand chose non plus, il ne va pas arrêter l'exécution du code qui plantera après sur le prepare(), il vaut mieux faire un die

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par Madfrix Voir le message
    le echo dans le catch ne sert pas à grand chose non plus, il ne va pas arrêter l'exécution du code qui plantera après sur le prepare(), il vaut mieux faire un die
    +1
    mais c'est pas die mais exit

  5. #5
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    bah c'est son alias non ?

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par Madfrix Voir le message
    bah c'est son alias non ?
    ouai justement, c'est déconseiller d'utiliser les alias

    C'est une très mauvaise habitude d'utiliser ces alias, car ils risquent à tous moment de disparaître, rendus obsolète sans préavis, ou bien par un simple changement de nom, ce qui rend votre script inutilisable avec des versions plus récentes de PHP. Préférez toujours les versions officielles.
    http://php.net/manual/fr/aliases.php

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de sécurité avec MS Access
    Par jpduches dans le forum Sécurité
    Réponses: 2
    Dernier message: 13/12/2010, 15h44
  2. [Sécurité] A propos de la sécurité avec J2EE
    Par kodo dans le forum Java EE
    Réponses: 3
    Dernier message: 03/06/2006, 21h45
  3. [Sécurité] Problème de sécurité avec l'upload
    Par Gwipi dans le forum Langage
    Réponses: 2
    Dernier message: 14/04/2006, 10h54
  4. [Sécurité] Sécurité avec .HTACCESS
    Par BRAUKRIS dans le forum Langage
    Réponses: 3
    Dernier message: 02/04/2006, 00h01
  5. sécurité avec C
    Par chiheb366 dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 14/10/2005, 12h30

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