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 :

Question mysql_real_escape_string local [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Inscrit en
    Juin 2006
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 584
    Points : 235
    Points
    235
    Par défaut Question mysql_real_escape_string local
    Bonjour,
    J'utilise Wamp en local pour déveloper mon site.

    Voici mon code :
    Code php : 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
    function protect_insert($variable)
    {
    	if (get_magic_quotes_gpc())// SI les magic quote sont activé
    	{
    		$variable = stripslashes($variable);		
    	}
    	$variable = mysql_real_escape_string($variable);
    	return $variable;
    }
    function ajout_marques ($marque)
    {
    	$marque = protect_insert($marque);
    	echo $marque;
    	$sql = "INSERT INTO liste_marques (marque) VALUES ('$marque')";
        $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    }
    Je n'ai pas mis la connectino à la db qui s'efectué avant tout cela.

    J'aurai 1 questions.
    Lorsqu'il y a des ' ou " dans la chaine, dans le echo, ils sont remplacé par des \' et \", normal me dirrez vous.
    Mais lorsque je consulte les enregistrements avec phpmyadmin, et bien les ' ou " apparaissent normalement dans aucun \ devant.

    Et lorsque je fait un select des enregistrement et que je les affiches, ils sortent également en claire sans aucun \

    Est ce que c'est normal?

    Merci pour votre réponse

  2. #2
    Membre confirmé
    Avatar de Tesing
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Points : 453
    Points
    453
    Par défaut
    Salut,

    oui, c'est normal.
    Les anti slash d'échappement devant les guillemets simples ou doubles sont interprétés par le serveur MySQL.
    Lors de l'insertion, il ne font plus partie de la chaine de caractères.
    Ils ont fait leur job : empêcher la terminaison d'une chaine de caractères dans la requête SQL avec un guillemet simple ou double suivi de l'injection de SQL.
    Ils ne sont donc pas stockés dans la table.

    Pas d'inquiétude a avoir.
    Keep it simple, stupid !

  3. #3
    Membre actif
    Inscrit en
    Juin 2006
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 584
    Points : 235
    Points
    235
    Par défaut
    Merci pour ta réponse.

    Mais imaginons que je sélectionnement un ligne de l'enregistrement et que je m'en sert pour inséré dans un autre table.
    est ce que je dois reprotéger la chaine sélectionné ou non?

  4. #4
    Membre confirmé
    Avatar de Tesing
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Points : 453
    Points
    453
    Par défaut
    Vu ta requête il est n'est pas possible de faire d'injection SQL sur l'INSERT de toute façon.
    Keep it simple, stupid !

  5. #5
    Membre confirmé
    Avatar de Tesing
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Points : 453
    Points
    453
    Par défaut
    Si des commandes SQL sont stockées dans le SGBD sous forme de chaines de caractères je ne vois pas pourquoi le SGBD les exécuterait.

    C'est au moment de la construction de la requete qu'il y a un risque.

    Si tu veux essayer de t'amuser avec des injections SQL :
    http://www.dareyourmind.net/, essaye les challenge d'injection SQL
    Keep it simple, stupid !

  6. #6
    Membre confirmé
    Avatar de Tesing
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Points : 453
    Points
    453
    Par défaut
    Par ailleurs, c'est sans doute des attaques XSS et CSRF que tu devrais te protéger.
    Keep it simple, stupid !

  7. #7
    Membre actif
    Inscrit en
    Juin 2006
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 584
    Points : 235
    Points
    235
    Par défaut
    pour les attaques XSS, j'ai lu qu'il fallait appliqué htmlentities lors de l'affichage des données.
    Personnellement, depuis longtemp je le fait à l'insertion.(je sais c'est p as bien ^^)

    Mais pour CSRF, jamais entendu parlé, je vais me renseigner.


    Merci pour tes réponses

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

Discussions similaires

  1. "attempt to define a local label before any non-local labels" + questions
    Par Krisom dans le forum x86 32-bits / 64-bits
    Réponses: 1
    Dernier message: 26/01/2013, 18h19
  2. Réponses: 0
    Dernier message: 27/07/2012, 17h11
  3. [MySQL] [mysql_real_escape_string] Resultat en local et sur 1and1 différent
    Par sterix92 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 18/10/2010, 11h14
  4. [Configuration] Question local Internet envoi Mail
    Par Little_flower dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 16/10/2007, 10h09
  5. [Réseau local] question XP - Vista
    Par L. Sierra dans le forum Windows Vista
    Réponses: 2
    Dernier message: 18/05/2007, 11h52

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