Blog of ChristoPHPe !
Bienvenue sur mon Blog !

Blog of ChristoPHPe !

[PHP] Le regiter_globals

18 août 2008 à 13:55, par Christophe

Bonjour tout le monde !
Je vais vous parler du register_globals, je trouve que c’est un point important de PHP.

Tout d’abord, je vous conseil de lire cela

Si vous avez bien compris, cette directive permet de donner une égalité entre $_GET['variable'] et $variable
Regardez cet exemple (source: php.net) :

<?php
// $authorized = true uniquement si l'utilisateur est identifié
if (authenticated_user()) {
    $authorized = true;
}
 
// Comme nous n'avons pas initialisé $authorized avec false, cette dernière
// peut être définie via register_globals, comme avec l'URL GET auth.php?authorized=1
// Tout le monde peut facilement être reconnu comme identifié!
if ($authorized) {
    include "/donnees/critiques/data.php";
}
?>

Embêtant non ?
C’est pour ce genre de faille que je (et pas que moi) vous conseil de mettre register_globals à OFF !

De plus, si plus tard vous voulez passer à PHP 6, vous n’êtes pas sortie d’avance, puisque il vous faudra convertir votre code… (register_globals a été supprimé dans PHP 6, et c’est tant mieux !)

Donc si vous souhaitez récupérer un variable en provenance de l’URL, vous devez faire :

echo $_GET['variable'];

et non pas

echo $variable;

Sinon, que votre hébergeur ou votre serveur ai register_globals activé, ce n’est pas grave, il faut déjà ne pas l’utiliser, mais même, je vous conseil de le désactiver d’office si vous pouvez éditer votre php.ini :)
Si vous n’avez pas accès au php.ini, vous pouvez le désactiver via un .htaccess de cette façon

php_flag register_globals off

Non au register_globals

Laisser un commentaire

Nom

Adresse e-Mail

Site Web

 | 




-->