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
477 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!

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