register_globals
vendredi 9 février 2007, par
Depuis Ouvaton3, la variable register_globals de PHP est à off. Cela signifie que vous devez obligatoirement passer par les tableaux associatifs $_GET, $_POST etc ... pour récupérer les variables envoyées par le navigateur de vos visiteurs. C’est plus sécurisé.
Voici les explications de Christian Domec :
L’histoire du « register_globals » à « off » par défaut n’est pas là pour enquiquiner tout le monde, mais c’est un premier pas pour contrôler un peu d’où les variables viennent et comment elles sont traitées (ça incite à sécuriser des sites d’éventuelles attaques externes ou plus simplement d’erreur de codage).
Quand le « register_globals » est à « on », si l’url d’appel est : .../traitement.php?var=oui, dans le script traitement.php on pourra mettre tout simplement (en français) : « si la variable "var" = "oui", on fait le traitement (quelque soit l’endroit d’où vient la variable) ».
Quand le « register_globals » est à « off », dans le script traitement.php il faudra spécifier d’où vient le contenu de la variable $var. Cela donnera en français : « si le contenu de "var" est obtenu (GET) par l’url et qu’il est égal à "oui", alors on fait le traitement ».
Et en php, la variable écrite $var ne sera reconnue qu’en la réceptionnant par un truc du style :
$localvar=$_GET["var"];
Avec les variables transmises par la méthode "post", la déclaration est similaire :
$localvar=$_POST["var"];
Cela renforce très fortement la sécurité de vos scripts en empêchant vos visiteurs de définir les variables qu’ils veulent en ainsi injecter des variables dans vos scripts.
Une bonne source : http://fr.php.net/manual/fr/tutoria....
P.-S.
Si vous avez vraiment besoin d’avoir la commande register_globals à « on » parce que vous avez la flemme de remplacer vos $truc par $_GET[’truc’] et que vous vous fichez de la sécurité de votre site, vous pouvez toujours rajouter la ligne suivante dans votre fichier .htaccess :
AddType application/x-suexec-php5-glo-on .php
Dans les prochaines versions de PHP, cette possibilité sera certainement supprimée. On vous aura prévenus.