Lorsque register_global est a on, toutes les variables passent, par mesure de sécurité mieux vaut détruire les variables qui ne sont pas requises a l'exécution du programme. Ce programme nettoie les variables suspectes. Mieux vaut placer cette procédure dans un include comme ça si le register_global passe a off il sera facile de changer le "secure.php" pour enregistrer les variables permises.
Source / Exemple :
// dans le script ///////////////////////////////
$securityenter = array("var1","var2", "var3");
require "secure.php";
// secure.php //////////////////////////////////
<?
// Liste les variables entrées
$sec = explode("&",$_SERVER["QUERY_STRING"]);
// Pour chaque variable entrée
for ($i=0;$sec[$i];$i++) {
// Récupère le nom
$sec2 = explode("=",$sec[$i]);
$danger = 1;
// Si dans la liste des pas dangereux : ok
foreach($securityenter as $security) if ($sec2[0] == $security) $danger = 0;
// Si dangereux détruit la var suspecte
if ($danger == 1) unset($$sec2[0]);
}
?>
Conclusion :
Ne pas oublier que ce programme ne sécurise pas ce qu'il y a l'intérieur des variables, pour les vars numériques ne pas oublier $var*=1; et pour les alphanumériques addslashes et strip_tags.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.