Register globals
-
Upload
edgar-pauta -
Category
Technology
-
view
564 -
download
0
description
Transcript of Register globals
REGISTER
REGISTER
GLOBAL=on?
GLOBAL=on?
Los register_globals son un agujero de seguridad increíble.
Egister Global =on esta Egister Global =on esta compuesto por dos compuesto por dos
condiciones condiciones on u off.on u off.
Register Global=on se lo coloca Register Global=on se lo coloca en el código de PHP porque en el código de PHP porque supuestamente es un código supuestamente es un código que esta compuesto por que esta compuesto por variables.variables.
PHP4 trabajaba por defecto el PHP4 trabajaba por defecto el parámetro parámetro register_globals="on" lo que register_globals="on" lo que significa que cuando usabas una significa que cuando usabas una variable por GET o POST solo la variable por GET o POST solo la invocabas (ej.: para mostrar la invocabas (ej.: para mostrar la variable $usuario de un variable $usuario de un formulario solo ponías echo formulario solo ponías echo $usuario;).$usuario;).
En el script basta con usar En el script basta con usar $_REQUEST para usar $_REQUEST para usar indistintamente variables indistintamente variables $_POST y $_GET y no duplicar el $_POST y $_GET y no duplicar el algoritmo.algoritmo.
VENTAJAS
VENTAJAS
Con globals en on era fácil hacer Con globals en on era fácil hacer pasar una variable post por get pasar una variable post por get o peor aun, una variable interna o peor aun, una variable interna del sistema usando get.del sistema usando get.
Cuando se activa, la directiva register_globals inyectará sus scripts con todo tipo de variables, como variables de peticiones provenientes de formularios HTML. Esto junto con el hecho de que PHP no requiere la inicialización de variables significa escribir código inseguro que es mucho más fácil.
COSECUENCIAS
COSECUENCIAS
Fue una decisión difícil, pero la comunidad de PHP decidió desactivar esta directiva por defecto. Cuando habilitada, las personas usan variables sin saber con seguridad de dónde provienen y solo queda asumir. Las variables internas que son definidas en el script mismo son mezcladas con los datos enviados por los usuarios y deshabilitar register_globals se modifica este.
Ejemplo # 1 Ejemplo del uso inapropiado de register_globals = on
<? Php / / Definir $ autorizado = true sólo si el usuario está autenticado If (authenticated_user ()) ( $ Autorizado = true; ) / / Ya que no inicializamos $ autorizado como false, esta podría ser/ / Definida a traves de register_globals, como en el caso de GETauth.php? Autorizado = 1/ / Por lo tanto, cualquier persona puede verse como autenticada!If ($ autorizado) (Incluir "/ altamente sensible y data.php";) ?> ?>
A pesar de los beneficios de este cambio, muchos scripts antiguos no toman en cuenta este asunto y pueden dejar de funcionar, para esos casos, ( y para que no te pase siquiera por la cabeza poner de nuevo register_globals en "on" !!)
TRABAJO DE DISEÑO WEB TRABAJO DE DISEÑO WEB MUTIMEDIAMUTIMEDIA
POR: EDGAR PAUTAPOR: EDGAR PAUTA