Maison >développement back-end >tutoriel php >Qu'est-ce que register_globals et quel est son impact sur la sécurité PHP ?
Dévoilement des secrets de Register_globals en PHP
Register_globals, une fonctionnalité essentielle de PHP, a retenu l'attention en raison de son impact potentiel sur la sécurité. Pour bien comprendre ce concept, approfondissons son essence et explorons des exemples perspicaces.
Que sont register_globals ?
Register_globals est un paramètre de configuration qui permet à PHP de créer automatiquement des variables des éléments du tableau $_REQUEST. Cela implique que les valeurs soumises via les requêtes POST ou GET deviennent accessibles en tant que variables dont les noms correspondent aux noms des champs de saisie respectifs.
Sont globaux $user_id ; considéré comme un registre global ?
Le mot-clé global fonctionne différemment de register_globals. Il permet l'utilisation d'une variable globale spécifique dans une portée locale d'une fonction. Contrairement à register_globals, il ne rend pas automatiquement tous les éléments $_REQUEST globaux.
Exemples et risques de sécurité potentiels
L'exemple classique des implications de sécurité de register_globals tourne autour de la validation des entrées. Considérez le code suivant :
if (user_is_admin($user)) { $authorized = true; } if ($authorized) { // Grant extensive privileges }
Dans un environnement avec register_globals activé, un attaquant pourrait manipuler l'URL en ajoutant ?authorized=1 pour exécuter des actions privilégiées sans autorisation.
Comparaison avec le mot-clé global
Le mot-clé global, en revanche, sert un objectif différent. Il permet d'accéder à des variables globales spécifiques dans la portée d'une fonction. Par exemple :
$foo = 'bar'; function baz() { global $foo; echo $foo; // Output: bar }
Dans cet exemple, le global $foo; La déclaration dans la fonction baz() donne accès à la variable $foo définie dans la portée globale.
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!