par
AB » 03 févr. 2007, 22:12
Bonsoir,
Une petite précision sur le message d'Albat.
La plupart des hébergeurs travaillent maintenant avec register_globals = off, qui est le réglage par défaut des configurations récentes php, cela pour encourager les dévellopeurs à vérifier leur variables, pour renforcer la sécurité des scripts.
Donc avec ces réglages par défaut
$id_recu = $_GET['id'];
va renvoyer un message d'erreur car $_GET['id'] n'a pas été vérifié.
Une méthode qui marche mais n'apporte aucune sécurité serait :
$id_recu = isset($_GET['id'])? $_GET['id'] :0;
La variable id_recu = si la variable $_GET['id'] est définie, $id_recu = $_GET['id'] sinon $id_recu = 0. 0 étant la valeur par défaut que j'ai choisie pour l'exemple mais on peux la remplacer par n'importe quoi
Maintenant si tu attends une valeur numérique dans $_GET['id'], la méthode qui va sécurisé le script sera
$id_recu = (isset($_GET['id']) && is_numeric($_GET['id']))? $_GET['id'] :0;
La variable id_recu = si la variable $_GET['id'] est définie et qu'elle est de type numérique, $id_recu = $_GET['id'] sinon $id_recu = 0.
Cela permet d'éviter à un utilisateur pirate de passer n'importe quoi dans l'url. Dans cet exemple toute valeur non numérique de $_GET['id'] sera convertie à la valeur par défaut.