Exemple classique: if(user_is_admin($user))
{
$authorized = true;}
if($authorized)
// let them do anything they want}
Maintenant, si vous avez visité ce script dans un navigateur Web et que register_globals est activé sur le serveur, vous pouvez simplement ajouter? Problème de sécurité register_globals on dans php ini à corrige les. authorized=1 à l'URL et le mode god sera activé! Le mot-clé global: global est un mot-clé qui a peu à voir avec register_globals. Voici un exemple de son utilisation: $foo = 'bar';
baz();
function baz()
echo $foo; // PHP warns you about trying to use an uninitialized variable
// and nothing is output (because $foo doesn't exist here)}
buzz();
function buzz()
global $foo; // Enables the use of $foo in this scope
echo $foo; // Prints 'bar' to screen}
Certains hébergeurs activent la directive register_globals du Activée, cette directive permet d'enregistrer les variables super-globales ($_POST, $_GET, $_COOKIE, $_ENV, $_SERVER) dans des variables normales. Dès lors, si cette directive est à on et la variable $_POST['text'] existe, alors la variable $text de même valeur sera automatiquement créée. Apparemment, cette directive ne pose aucun problème et au contraire, facilite la programmation. Mais en réalité, celle-ci peut être à l'origine de gros soucis de sécurité. Imaginez maintenant que vous devez gérer une interface administrateur, et que vous avez ce code: php
$array_admin=array("admin"=>"passe",
"test"=>"test");
foreach($array_admin as $login=>$pwd) {
if($login==$_POST['login'] AND $pwd==$_POST['pwd']) {
$connected=true;
break;}}
//La variable $connected contient true si l'utilisateur est administrateur
if($connected==true) {
echo "Information confidentielle: [... ]";} else {? Hebergement Web: Pouvez-vous régler 'register_globals' sur ON dans PHP pour moi?. >