Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/09/2006, 11h50   #1
Inscrit
 
Inscription : juin 2006
Messages : 531
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 531
Points : 225
Points : 225
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 :
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 :
$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 :
$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 ?
JackBeauregard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2006, 14h08   #2
Membre régulier
 
Homme Matthieu
Consultant informatique
Inscription : janvier 2003
Messages : 134
Détails du profil
Informations personnelles :
Nom : Homme Matthieu
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Consultant informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2003
Messages : 134
Points : 79
Points : 79
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 :
mysql_real_escape_string($_GET['var']);
par contre avant, bah elle est deja definit et peu contenir du code par forcement licite
ermelir est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2006, 15h36   #3
Inscrit
 
Inscription : juin 2006
Messages : 531
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 531
Points : 225
Points : 225
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é ?
JackBeauregard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2006, 15h48   #4
Membre régulier
 
Homme Matthieu
Consultant informatique
Inscription : janvier 2003
Messages : 134
Détails du profil
Informations personnelles :
Nom : Homme Matthieu
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Consultant informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2003
Messages : 134
Points : 79
Points : 79
bonjour

Code :
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
ermelir est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2006, 16h00   #5
Inscrit
 
Inscription : juin 2006
Messages : 531
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 531
Points : 225
Points : 225
Oui c'est ce que je fais mais j'étais pris d'un doute tenaillant.
JackBeauregard est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h01.


 
 
 
 
Partenaires

Hébergement Web