note 48576 added to security.globals
| From: | davidatnet2ftpdotcom at osu1 dot php dot net | Date: | Thu, 30 Dec 2004 21:03:27 +0000 |
| Subject: | note 48576 added to security.globals | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-82483@lists.php.net to get a copy of this message | ||
If you want register_globals to be Off in one script, but you can't change the PHP config
(shared hosting) and you can't use a .htaccess directive (shared hosting, or non-Apache
server), this may help.
Here is a easy script which will erase all auto-registered variables, except for $_GET, $_POST,
$_COOKIE, etc.
<?php
if (ini_get(register_globals) == 1) {
$defined_vars = get_defined_vars();
while (list($var_name, $var_value) = each($defined_vars)) {
if ($var_name != "_GET" && $var_name != "_POST" && $var_name
!= "_COOKIE" && $var_name != "_SERVER" && $var_name !=
"_FILES" && $var_name != "_SESSION" && $var_name !=
"_ENV") {
unset($$var_name);
}
} // end while
}
?>
To check if the variables were really unset, use this:
<?php
$defined_vars = get_defined_vars();
while (list($var_name, $var_value) = each($defined_vars)) {
echo "Variable " . $var_name . " has value " . $var_value . "<br
/>\n";
} // end while
?>
Once all auto-registered variables are unset, you can register only the ones you really want:
$username = $_POST["username"];
----
Manual Page -- http://www.php.net/manual/en/security.globals.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+48576
Delete -- http://master.php.net/manage/user-notes.php?action=delete+48576&report=yes
Reason: bad code -- http://master.php.net/manage/user-notes.php?action=delete+48576&report=yes&reason=bad+code
Reason: spam -- http://master.php.net/manage/user-notes.php?action=delete+48576&report=yes&reason=spam
Reason: useless example -- http://master.php.net/manage/user-notes.php?action=delete+48576&report=yes&reason=useless+example
Reason: contains commercial links -- http://master.php.net/manage/user-notes.php?action=delete+48576&report=yes&reason=contains+commercial+links
Reason: useless note -- http://master.php.net/manage/user-notes.php?action=delete+48576&report=yes&reason=useless+note
Reject -- http://master.php.net/manage/user-notes.php?action=reject+48576&report=yes
Search -- http://master.php.net/manage/user-notes.php