Solventar problemática register_globals en servidores comerciales

PHPRegister_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});");
}
}
[/php]


Publicado

en

,

por

  • Los diez negritos

    “Los Diez Negritos“, una cautivante novela de misterio escrita por Agatha Christie, es un tour de force en el género del suspense. Publicada en 1939 bajo el título original “And Then There Were None”, esta obra maestra sumerge a los lectores en una trama inquietante, donde cada página está tejida con intriga y giros sorprendentes.…

  • Sherlock Holmes – El sabueso de los Baskerville

    “El Sabueso de los Baskerville” es una obra maestra del misterio escrita por Sir Arthur Conan Doyle, y es parte de la serie de Sherlock Holmes. La novela nos transporta a los páramos sombríos y misteriosos de Dartmoor, donde la leyenda de la familia Baskerville se entrelaza con un enigma de asesinato y oscuridad. En…

  • El juego de Ender

    “El Juego de Ender” es una novela de ciencia ficción escrita por Orson Scott Card que se ha convertido en un referente del género. La historia nos sumerge en un futuro distópico, donde la humanidad se encuentra en una constante lucha contra una raza alienígena conocida como los Insectores. La trama sigue a Andrew “Ender”…

  • Wonder – La lección de August

    Su cara lo hace distinto y él solo quiere ser uno más. Camina siempre mirando al suelo, la cabeza gacha y el flequillo tratando en vano de esconder su rostro, pero, aun así, es objeto de miradas furtivas, susurros ahogados y codazos de asombro. August sale poco, su vida transcurre entre las acogedoras paredes de…

  • 20.000 leguas de viaje submarino

    “Veinte Mil Leguas de Viaje Submarino” fue originalmente publicada en Francia en 1869 por el autor Jules Verne, cuyo nombre solemos castellanizar como Julio Verne. Esta obra se clasifica principalmente como una novela de aventuras, aunque contiene matices de ciencia ficción y toques de fantasía. Con el paso del tiempo, la dimensión de ciencia ficción…

  • Obsidiana, sangre y oro

    En el año 2011, Érik de Diego se encuentra sumido en una profunda crisis existencial que lo impulsa a tomar una drástica decisión: huir y tomarse un tiempo para reflexionar sobre su vida. Su primer destino es Guatemala, un país que poco a poco lo cautiva y lo envuelve en su rica historia, conflictos, desigualdades…

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *