Nettoyage des variables

Contenu du snippet

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.

A voir également

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.