Maison > développement back-end > tutoriel php > La directive Register_globals de PHP constitue-t-elle un risque pour la sécurité ?

La directive Register_globals de PHP constitue-t-elle un risque pour la sécurité ?

Patricia Arquette
Libérer: 2024-11-15 09:06:03
original
571 Les gens l'ont consulté

Is PHP's register_globals Directive a Security Risk?

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
}
Copier après la connexion

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!

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