Maison > développement back-end > tutoriel php > Pourquoi Register_globals a-t-il été désactivé en PHP ?

Pourquoi Register_globals a-t-il été désactivé en PHP ?

Linda Hamilton
Libérer: 2024-11-15 10:33:02
original
687 Les gens l'ont consulté

Why Was register_globals Disabled in PHP?

Enregistrement des globaux en PHP

Introduction

En PHP, register_globals était un paramètre interne qui enregistrait automatiquement les variables du tableau superglobal $_REQUEST. Cependant, il a été désactivé par défaut en raison de problèmes de sécurité.

Exemples de Register Globals

Lorsque register_globals était activé, les valeurs des champs de saisie des requêtes POST ou GET pouvaient être directement accessibles en tant que variables avec le même nom comme champ de saisie. Par exemple :

<form method="post">
  <input type="text" name="username">
  <input type="submit">
</form>
Copier après la connexion

Avec register_globals activé, le code PHP suivant serait évalué comme vrai au début du script :

$username === $_POST['username'];
Copier après la connexion

Vulnérabilités de sécurité

Register_globals introduit de graves failles de sécurité. Par exemple, un attaquant pourrait ajouter un paramètre de chaîne de requête à une URL, tel que "?authorized=1", pour contourner les contrôles d'autorisation.

Mot-clé global

Contrairement à register_globals, le mot-clé global a un but différent. Il est utilisé pour accéder aux variables d’une portée différente au sein d’une fonction. Par exemple :

$foo = 'bar';

function baz() {
  // Attempting to use $foo here will trigger a warning
  echo $foo;
}

function buzz() {
  global $foo;  // Declares that $foo is a global variable
  echo $foo;    // Prints 'bar'
}
Copier après la connexion

Conclusion

Bien que register_globals ne soit plus utilisé en raison de ses risques de sécurité, le mot-clé global reste un outil utile pour accéder à des variables dans différentes portées.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal