Si usas register_globlas a OFF en el servidor q ejecutes tu cógido te aseguras 100% que los arrays superglobales $_xxx tomen su valor y no se acepte nada que no sea accedido por ese array ...
Con esto te obligas (y así deberias hacerlo) a usar si recoges una variable por GET a:
$_GET['variable']
y si lees una variable de session usar:
$_SESSION['variable']
Si asumes globales (usas register_globals a ON)
si llamas a una variable en tu codigo por:
$variable ... ya habras leido en las FAQ's que le puedes entrar por cualquier medio .. sea GET/POST .. o confundirse con una variable de session/cookie o cualquier otra ..
Si usas register_globals a ON y lees $_SESSION['variable'] .. solo leeras ese Array y no será una variable GLOBAL .. como si intentases pasarle $variable por GET ..
Si aun tienes dudas .. Pruebalo
haz un:
Código PHP:
<?
session_start();
echo $variable;
echo $_SESSION['variable'];
?>
(previamente guardate una variable de session .. mismo nombre y pasale esa variable por get tal q un link: pagina.php?variable=valor)
El hecho de no asumir globales ninguna variable es en lo que php se basa en evitar que una variable pasada a un script por un metodo cualquiera .. suplante el valor de la misma variable u otras de otro metodo esperado.
Si usas register_globals a ON .. mientras q la version de PHP soporte los arrays superglobales q usaras ($_xxx disponible desde la version 4.1.x en adelante) ... no tendras problemas en usar de forma segura tu aplicacion tanto en register globals a ON como a OFF .. siendo mas segura si cabe si lo usas a OFF.
Un saludo,