par
Hubert Roksor » 03 sept. 2006, 13:59
La solution est plutôt simple, il suffit
pour chaque variable utilisée dans une requête de la faire passer par mysql_real_escape_string() ou encore intval() ou floatval() selon son type. En clair, il faut
systématiquement valider les données utilisateur. Exemple, un moteur de recherche pour trouver les utilisateurs d'un site:
//
$sql = "SELECT *
FROM utilisateurs
WHERE nom LIKE '" . mysql_real_escape_string($_POST['nom'], $db) . "%'
AND age >= " . intval($_POST['age']);
À la place d'intval(), tu pourras peut-être préférer une solution basée sur une expression rationnelle afin de présenter un message d'erreur à l'utilisateur s'il entre une valeur incorrecte.
La solution est plutôt simple, il suffit [b]pour [u]chaque variable[/u] utilisée dans une requête[/b] de la faire passer par mysql_real_escape_string() ou encore intval() ou floatval() selon son type. En clair, il faut [b]systématiquement valider les données utilisateur[/b]. Exemple, un moteur de recherche pour trouver les utilisateurs d'un site:
[php]//
$sql = "SELECT *
FROM utilisateurs
WHERE nom LIKE '" . mysql_real_escape_string($_POST['nom'], $db) . "%'
AND age >= " . intval($_POST['age']);[/php]
À la place d'intval(), tu pourras peut-être préférer une solution basée sur une expression rationnelle afin de présenter un message d'erreur à l'utilisateur s'il entre une valeur incorrecte.