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écuriser l'injection SQL [MySQL]


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
    Juillet 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 109
    Par défaut Sécuriser l'injection SQL
    Bonjour à tous,

    je viens souvent sur les forum de developpez.net car je vois qu'ici j'ai des excellentes réponses

    Je me pose une question concernant l'injection SQL.

    Aujourd'hui je fais mes requêtes comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $nom = str_replace("'","(s)",$_POST['nom']);
    mysql_query("INSERT INTO table(nom) VALUES ('".$nom."')");
    De cette façon, je remplace le single quote par (s).

    Le soucis est que lors de l'affichage, je ne dois pas oublier de remplacer (s) par le single quote.

    Je voudrais savoir si vous avez une meilleur solution (en utilisant toujours le mysql_query) pour sécuriser l'injection sql.
    En remplaçant bêtement le single quote par \' est une bonne solution ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $nom = str_replace("'","\'",$_POST['nom']);
    merci pour vos réponse

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Par défaut
    mysql_real_escape_string est ton ami.

    http://fr.php.net/manual/fr/function...ape-string.php

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 109
    Par défaut
    Je pense avoir compris cette fonction.

    Donc en résumé si je fais tout simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("INSERT INTO table(nom) VALUES ('".mysql_real_escape_string($nom)."')");
    Mes requêtes seront sécuriser à 100 % ?

  4. #4
    Membre éclairé

    Homme Profil pro
    Developpeur web
    Inscrit en
    Septembre 2006
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developpeur web
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 225
    Par défaut
    Oui ce sera sécurisé mais un conseil parcours un toutes les fonctions php (juste lire) pour voir ce qu'elles permettent avant de te lancer parce que si tu te prend la tête pour imaginer une fonction qui existe déjà ce serait bête :s

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 109
    Par défaut
    ben... je peux toujours regarder, mais bon si cette fonction me sécurise à 100% contre l'injection SQL je fais toutes mes query de la façon que j'ai cité (vu que j'ai l'habitude de me créer un générateur de code source).

    Merci beaucoup pour vos réponse

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

Discussions similaires

  1. [Sécurité] Injection SQL
    Par Michel_57 dans le forum Langage
    Réponses: 17
    Dernier message: 19/04/2006, 00h25
  2. Sécurité - Inject SQL et %
    Par bigsister dans le forum Requêtes
    Réponses: 14
    Dernier message: 01/04/2006, 09h34
  3. Réponses: 4
    Dernier message: 13/02/2006, 11h34
  4. Réponses: 20
    Dernier message: 03/02/2006, 10h55
  5. Réponses: 10
    Dernier message: 25/10/2005, 16h09

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