Comprendre Register_Globals en PHP
La directive register_globals de PHP soulève des questions sur sa nature et ses fonctionnalités. Examinons-le :
Que sont Register_Globals ?
Register_globals est un paramètre de configuration qui crée automatiquement des variables globales à partir d'éléments du tableau $_REQUEST. Lors de la soumission d'un formulaire, les variables sont accessibles dans le script PHP avec des noms correspondant à l'attribut "name" du champ de saisie.
Par exemple, avec register_globals activé et un formulaire soumettant un champ de nom d'utilisateur, l'expression ($username = == $_POST['username']) serait évalué à true.
Implications en matière de sécurité
Register_globals présente des risques de sécurité importants car il permet aux utilisateurs malveillants de manipuler des variables sans autorisation appropriée. validation. Par exemple, en ajoutant "?authorized=1" à une URL, un attaquant pourrait contourner les contrôles d'autorisation.
Distinction globale des mots clés
Contrairement à register_globals, le mot clé global permet les variables déclarées en dehors de la portée d'une fonction pour y accéder. Les variables globales doivent être explicitement déclarées à l'aide du mot-clé global avant de pouvoir être utilisées.
Par exemple, le code suivant utilise global $foo pour accéder à une variable déclarée en dehors de la fonction buzz() :
$foo = 'bar'; baz(); function baz() { echo $foo; // PHP warns about using an uninitialized variable } buzz(); function buzz() { global $foo; // Enables use of $foo in this scope echo $foo; // Prints 'bar' to screen }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!