
03/06/2007, 16:59
|
 | | | Fecha de Ingreso: junio-2007
Mensajes: 31
Antigüedad: 17 años, 8 meses Puntos: 0 | |
Re: Problema de seguridad con variables globales Cita:
Iniciado por ArrauKano mmm, acá un hecho curioso. por ejemplo, si hago:
index.php?variable=valor
y el script: Código PHP: $variable = 'cosa';
echo $variable;
Retorna 'cosa' como debiera ser, pero con esto: Código PHP: if(isset($_GET['menu'])) {
$menu = Modulos::buscar_menu($_GET['menu']);
if($menu) $_SESSION['menu'] = $_GET['menu'];
} elseif(isset($_SESSION['menu'])) {
$menu = Modulos::buscar_menu($_SESSION['menu']);
} else {
$menu = Modulos::buscar_menu('principal');
}
$smarty->assign('menu_list', $menu);
Dependiendo del caso, me sobreescribe $menu con $_GET['menu'] o con $_SESSION['menu'].
Eso es lo extraño, la solución provisoria que encontré fue cambiarle el nombre a $menu por $menu_list.
El punto es que no puedo desactivar los registros globales, pk tengo otros prefabricados corriendo que no funcionan con register_globals en off.
Pero si puedo manipular otras directivas del php.ini Prueba con éste código y nos cuentas:
Código:
<?php
function addslashes__recursive($var){
if (!is_array($var))
return addslashes($var);
$new_var = array();
foreach ($var as $k => $v)$new_var[addslashes($k)]=addslashes__recursive($v);
return $new_var;
}
$_POST=addslashes__recursive($_POST);
$_GET=addslashes__recursive($_GET);
$_REQUEST=addslashes__recursive($_REQUEST);
$_SERVER=addslashes__recursive($_SERVER);
$_COOKIE=addslashes__recursive($_COOKIE);
?>
Saludos |