Questions de sécurité...

Signaler
Messages postés
15
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
13 février 2010
-
Messages postés
15
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
13 février 2010
-
Bonjour,

J'utilise une variabe dans l'addresse d'une page PHP (type : fichier.php?page=1), j'ai put voir sur le net qu'il était necessaire de proteger la variable page ainsi :
$page = mysql_real_escape_string(htmlspecialchars($_GET['page']));
Je voulai savoir si le risque d'une injection se situ lors de l'utilisation de la variable $page n'importe ou dans le code ($page = $page + 1; par exemple), ou si c'est seulement lors d'un "echo" ou d'une requete SQL par exemple...
Si c'est le 2ème cas, il serait alors possible de se passer du code cité et de faire un simple $page = intval($page); non ? vu que la variable est de type nombre.

voila, merci ;)

2 réponses

Messages postés
510
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
5 juillet 2009
2
Le meilleur est d'utiliser un genre de "code" dans les variables que tu passes dans l'url, et de ne jamais inclure directement une page passée en paramètre. Le risque d'injection se situe à tous niveaux dans le code. Pour la requète SQL, de toute façon tu traites tes valeurs avant de les utiliser, donc si ton code est bien fait, il ne devrait pas y avoir de soucis.
Messages postés
15
Date d'inscription
mardi 14 août 2007
Statut
Membre
Dernière intervention
13 février 2010

Bonjour,

Merci pour votre réponse, même si je n'ai pas très bien compris
Pour faire simple, si j'ai une variable ?page=... dans l'addresse, qui doit être un "int" normalement (1, 2, ...), et que je la récupère avec ca : $page = intval($_GET['page']); Est ce qu'il y a un risque d'injection ? vu que $page contiendra un "int" quelque soit la modification que l'utilisateur aura effectué dans l'addresse de la page, et que la variable est de type "int" donc aucun problème si elle n'a pas été modifié par l'utilisateur...
A moins que l'injection pourra avoir un effet directement sur l'instruction intval($_GET['page']); ? par exemple en injectant un truck du genre :
); echo $mot_de_passe;
enfin je ne sait pas si c'est possible de faire un truck pareil...

Si vous avez une idée ;) désolé mais je suis encore nouveau en PHP donc j'ai pas bien l'habitude...
Merci, a+