I read the PHP manual saying that global variables are recommended to be closed, that is, to set the regester_globales to OFF
And the manual also gave an example of what would have happened if you didn't turn it off, but the explanation in the following section
Get auth.php?authorized=1 don't know what it means??? I hope you'll help me.
Example of error using Register_globals = On
Assignment $authorized = True when the user is legal
if (Authenticated_user ()) {
$authorized = true;
}
Since the $authorized has not been initialized to false beforehand,
When Register_globals is open, the variable value may be defined by a get auth.php?authorized=1
So anyone can bypass the authentication
if ($authorized) {
Include "/highly/sensitive/data.php";
}
?>
When register_globals = ON, the code above is dangerous. If it is off, $authorized can not be changed by means such as URL request, so much the better, although the initialization of variables is a good programming habit. For example, if you add $authorized = False before the above code executes, whether Register_globals is on or off, because the user state is initialized to unauthenticated.
Excerpted from kaituozhe345
http://www.bkjia.com/PHPjc/478397.html www.bkjia.com true http://www.bkjia.com/PHPjc/478397.html techarticle I read the PHP manual saying that global variables are recommended to be closed, that is, to set the regester_globales to off and the manual also provides an example of what will happen if you do not turn it off, for example ...