Ver Mensaje Individual
  #4 (permalink)  
Antiguo 03/06/2007, 16:59
Avatar de tutorialphp
tutorialphp
 
Fecha de Ingreso: junio-2007
Mensajes: 31
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Problema de seguridad con variables globales

Cita:
Iniciado por ArrauKano Ver Mensaje
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