protection des requetes [mySql] - SQL/NoSQL - Programmation
Marsh Posté le 28-05-2002 à 22:04:33
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
Marsh Posté le 28-05-2002 à 22:16:08
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).
Marsh Posté le 28-05-2002 à 23:14:11
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
Marsh Posté le 29-05-2002 à 01:44:30
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]
Marsh Posté le 29-05-2002 à 08:27:54
hummmm pas con ca les gars j'y avais po pense
Marsh Posté le 28-05-2002 à 19:45:27
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é ?