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 :

register_global à on et variables dans requêtes SQL


Sujet :

Langage PHP

  1. #1
    Inscrit
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 531
    Points : 282
    Points
    282
    Par défaut register_global à on et variables dans requêtes SQL
    Bonjour,

    Je suis pris soudain d'un doute affreux et tenaillant qui me pousse à aller me coucher, mais bon je vais tâcher d'être courageux.

    Voilà, chez mon hébergeur, OVH, register_global est à ON, donc dans mes requêtes sql, je peux écrire de la même façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    WHERE '".$var."'
    ou 
    WHERE '".$_POST['var']."'
    ou
    WHERE '".$_GET['var']."'
    Mais à réception d'une variable GET, ou POST, je fais cela bien sûr :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $var=mysql_real_escape_string($_GET['var']);
    Puis j'insère $var dans les requêtes suivantes, comme ci-dessus.

    Alors compte tenu du fait que register_global est à ON, je me demande si je ne devrais pas plutot faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $bob=mysql_real_escape_string($_GET['var']);
    C'est à dire changer le nom de la variable, plutôt que d'insérer dans les requêtes SQL de la page une variable qui ait le même nom que celle réceptionnée par POST ou GET.

    Vous en pensez quoi, s'il vous plaît ?

  2. #2
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 133
    Points : 101
    Points
    101
    Par défaut
    bonjour

    vu que tu fais une affectation de ta variable, elle prendra la valeur que tu lui specifie.
    Donc apres, elle aura bien la valeur de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_real_escape_string($_GET['var']);
    par contre avant, bah elle est deja definit et peu contenir du code par forcement licite

  3. #3
    Inscrit
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 531
    Points : 282
    Points
    282
    Par défaut
    Avant c'est à dire à réception ? Oui donc je la filtre et puis je récupère son contenu dans une autre variable $var, variable locale si je ne me trompe pas d'appelation.

    Mais le script, aidé par le pirate, ne peut-il confondre $var avec celle qu'il a reçu par $_GET['var'] ou $_POST ['var'] et qui porte en fait le même nom, ce après qu'elle ai déjà été réceptionnée et son contenu filtré ?

  4. #4
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 133
    Points : 101
    Points
    101
    Par défaut
    bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    if ($var) {
    // cette portion de code est sensible
    ...
    }
    $var=mysql_real_escape_string($_GET['var']);
    // a partir d'ici tu n'est plus sensible au problemes d'injection de code
    ?>
    donc pour te proteger, comme il t'a ete dit dans des post precedents, fait tes affectations de tes variables en debut de script, tu es sur au moins apres de ce que tu traites est bien ce que tu attends

  5. #5
    Inscrit
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 531
    Points : 282
    Points
    282
    Par défaut
    Oui c'est ce que je fais mais j'étais pris d'un doute tenaillant.

Discussions similaires

  1. variable dans requête sql
    Par simounth dans le forum SGBD
    Réponses: 1
    Dernier message: 10/08/2009, 12h40
  2. Variable dans requète sql
    Par vangru.o dans le forum Langage SQL
    Réponses: 1
    Dernier message: 01/04/2009, 20h21
  3. Inclure une variable dans requête SQL
    Par Mvu dans le forum Visual Studio
    Réponses: 2
    Dernier message: 04/07/2008, 09h13
  4. Problème Variable dans requête SQL
    Par maxime350 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 10/04/2008, 20h55
  5. [MySQL] Introduire une variable dans requête SQL, insérer des données à la volée
    Par Ronan.f dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 29/04/2006, 22h10

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