Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1515 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [mySql] protection des requetes

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[mySql] protection des requetes

n°146420
siewn
Posté le 28-05-2002 à 19:45:27  profilanswer
 

quand j'ai une requete de ce type : 'SELECT util_email FROM utilisateurs WHERE util_id='.$_COOKIE['idutil'].'
 
suffit que l'utilisateur modifie son cookie et mette comem valeur par ex. '1 AND ...' et il peut modifier la requete comme il veut en rajoutant n'importe quoi après le AND...
bref, est-ce que le seul moyen de protection est de faire une vérification avec une reg.exp. avant chaque requete où y'a qque chose de plus adapté ?

mood
Publicité
Posté le 28-05-2002 à 19:45:27  profilanswer
 

n°146533
Tentacle
Posté le 28-05-2002 à 22:04:33  profilanswer
 

siewn a écrit a écrit :

quand j'ai une requete de ce type : 'SELECT util_email FROM utilisateurs WHERE util_id='.$_COOKIE['idutil'].'
 
suffit que l'utilisateur modifie son cookie et mette comem valeur par ex. '1 AND ...' et il peut modifier la requete comme il veut en rajoutant n'importe quoi après le AND...
bref, est-ce que le seul moyen de protection est de faire une vérification avec une reg.exp. avant chaque requete où y'a qque chose de plus adapté ?  




 
Bah déjà heureusement tu ne risques pas qu'il fasse une autre requête après... :)
À part ça, si tu utilises PHP, ya la fonction mysql_escape_string (vérifie sur www.php.net voir si c'est bien ça) qui permet de palier ce genre d'inconvénients

n°146546
siewn
Posté le 28-05-2002 à 22:16:08  profilanswer
 

j'ai regardé.
en fait ça va marcher pour les champs textes mais pas pour les champs numériques (car ils ne sont pas entourés de guillemet).

n°146569
Tentacle
Posté le 28-05-2002 à 23:14:11  profilanswer
 

siewn a écrit a écrit :

j'ai regardé.
en fait ça va marcher pour les champs textes mais pas pour les champs numériques (car ils ne sont pas entourés de guillemet).  




 
PHP ne fait la différence entre les 2, il te suffit donc de passer ton 'nombre' dans cette fonction et après tu l'intègres dans ta requête

n°146620
ethernal
Chercheur de vérité...
Posté le 29-05-2002 à 01:44:30  profilanswer
 

sinon regarde aussi la config de ton php.ini :  magic_quotes_gpc escape tout ce qui provient des Get, Post, Cookie. (d'ou le nom ;) )
il fait donc un addslashes($var) de tout ce qu'il reçoit de façon transparente pour le programme.
 
pour savoir s'il est activé: get_magic_quotes_gpc().
 
tu peux faire une fonction pour que ton prog fct avec toutes les configs.
function addMySlashes($string){
  return (get_magic_quotes_gpc()) ? $string : addslashes($string);
}
 
si c'est le numérique qui t'inquiète : is_numeric($var) est ton ami. (qd je reçois un id provenant d'une url ou  d'un cookie, je teste toujours si c'est bien un numérique avant de faire la query)

 

[jfdsdjhfuetppo]--Message édité par ethernal le 29-05-2002 à 01:46:27--[/jfdsdjhfuetppo]


---------------
...oups kernel error...
n°146637
kayasax
Posté le 29-05-2002 à 08:27:54  profilanswer
 

:wahoo: hummmm pas con ca les gars j'y avais po pense :jap:


---------------
All we need is a soul revolution

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [mySql] protection des requetes

 

Sujets relatifs
mysql : text ou blob ?[MYSQL] Question d'Insert dans une table
mysql : mysql_free_result et fulltextPHP-MySQL Hébergeur wanadoo - Besoin d'aide urgent
Newbee en php/MySql - Please HelpHebergeurs gratuits ( PHP4 / MySQL )
[PHP/MySQL] Afficher des enregistrement par date[ PHP / MySQL ] Suivre les recherche qui ont été faites...
BASE mysql + liensTest IF sur requete MySQL
Plus de sujets relatifs à : [mySql] protection des requetes


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR