Register Globals nutzen
Aus netcup Wiki
Die PHP-Option "Register_Globals" ist, im Interesse aller Kunden von netcup, in einem Webhostingtarif deaktiviert. Diese Option stellt eine potentielle Sicherheitslücke für PHP-Scripte dar.
Wenn Sie dennoch Register_Globals nutzen müssen, da Sie z.B. ein altes PHP-Script nutzen, können Sie die übergebenen GET-Parameter trotzdem Global durch einen kleinen Trick ansprechen. Binden Sie hierzu in jeder Ihrer-PHP-Dateien als erstes folgenden Code ein:
<?php if (!defined('PMA_GRAB_GLOBALS_INCLUDED')) { define('PMA_GRAB_GLOBALS_INCLUDED', 1); if (!empty($_GET)) { extract($_GET, EXTR_OVERWRITE); } else if (!empty($HTTP_GET_VARS)) { extract($HTTP_GET_VARS, EXTR_OVERWRITE); } if (!empty($_POST)) { extract($_POST, EXTR_OVERWRITE); } else if (!empty($HTTP_POST_VARS)) { extract($HTTP_POST_VARS, EXTR_OVERWRITE); } if (!empty($_FILES)) { while (list($name, $value) = each($_FILES)) { $$name = $value['tmp_name']; } } else if (!empty($HTTP_POST_FILES)) { while (list($name, $value) = each($HTTP_POST_FILES)) { $$name = $value['tmp_name']; } } if (!empty($_SERVER) && isset($_SERVER['PHP_SELF'])) { $PHP_SELF = $_SERVER['PHP_SELF']; } else if (!empty($HTTP_SERVER_VARS) && isset($HTTP_SERVER_VARS['PHP_SELF'])) { $PHP_SELF = $HTTP_SERVER_VARS['PHP_SELF']; } if (isset($goto) && strpos(' ' . $goto, '/') > 0 && substr($goto, 0, 2) != './') { unset($goto); } if (get_magic_quotes_gpc()) { if (isset($db)) { $db = stripslashes($db); } if (isset($table)) { $table = stripslashes($table); } } } ?>
WARNUNG: Nutzen Sie dieses Script nur, wenn Sie wissen das Ihre eigenen Scripte sicher sind. Sollten Ihre PHP-Scripte Sicherheitlücken bergen durch die ein Schaden entstehen kann, haften Sie für diese Schäden!
Tipp: Haben Sie eine "Header-Datei" die von jeder PHP-Datei eingebunden wird, brauchen Sie das obige Script nur in diese einbinden.