Register_globals es una variable de configuración, que existe desde las versiones mas tempranas de php. Controla la disponibilidad de las variables que se envia a un script php mediante metodos POST, GET, o variables procedentes de las COOKIES.
Con register_globals activo, cualquier variable enviada, por ejemplo en una url, queda automáticamente declarada en el código php como si la hubieramos incluido mediante la instrucción var $variable;
Eg.
http://tld.com/test.php?mivar=hola
equivale a que en test.php se hubiera declarado la variable como:
var $mivar = ‘hola’;
Desde la versión PHP 4.2.0 el valor de register_globals está puesto a “off” debido a los riesgos de seguridad que implica ya que podemos inyectar variables a un código php sin control.
La manera más sencilla de eliminar la problemática de seguridad de register_globals consiste en poner a “off” el valor dentro del fichero php.ini.
En otros casos, cuando no tenemos acceso a la configuración del servidor podemos utilizar el script “fix_register_globals.php” que os adjunto.
Esencialmente lo que hace el script es recorrer las estructuras superglobales $_POST, $_GET y $_REQUEST, obteniendo el nombre de las variables para eliminarlas del entorno mediante el uso de la función “unset”.
<?php
//
// http://es.php.net/manual/es/security.globals.php#76550
//
if (ini_get(register_globals)) // If register_globals is enabled
{ // Unset $_GET keys
foreach ($_GET as $get_key => $get_value) {
if (ereg('^([a-zA-Z]|_){1}([a-zA-Z0-9]|_)*$’, $get_key)) eval("unset(\${$get_key});");
} // Unset $_POST keys
foreach ($_POST as $post_key => $post_value) {
if (ereg('^([a-zA-Z]|_){1}([a-zA-Z0-9]|_)*$’, $post_key)) eval("unset(\${$post_key});");
} // Unset $_REQUEST keys
foreach ($_REQUEST as $request_key => $request_value) {
if (ereg('^([a-zA-Z]|_){1}([a-zA-Z0-9]|_)*$’, $request_key)) eval("unset(\${$request_key});");
}
}
?>- Download this code: fix_register_globals.txt
It is rare for me to discover something on the web that’s as entertaining and intriguing as what you’ve got here. Your page is lovely, your graphics are outstanding, and what’s more, you use source that are relevant to what you’re talking about. You are de
This is my first time i go post. I collected so many interesting things in your site especially its discussion. From the tons of comments on your posts, I guess I am not the only one having all the enjoyment here! keep up the good work.Regards By academic