La variable importée est une valeur numérique :
ENTIER ⇒
settype($variable, "integer");
REEL ⇒
settype($variable, "double");
Cette instruction très simple aura comme effet de trans-typer $variable … donc de transformer une injection XSS (ou autre) en un entier, un réel, … et donc de lui faire perdre son utilité.
La variable importée est une valeur chaîne de caractères :
Il n’y a malheureusement pas de solution simple mais si $search est notre variable, alors :
$search=removeHack(stripslashes(htmlentities(urldecode($search), ENT_NOQUOTES)));
va faire le nécessaire La variable est une chaîne mais la ligne du dessus transforme trop le résultat : Dans ce cas removeHack fera le minimum et la ligne :
$search=removeHack($search);
permet de s’assurer une relative tranquillité