Ver Mensaje Individual
  #5 (permalink)  
Antiguo 02/10/2003, 13:36
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Si accedes a un valor por el array $_GET, tienes la seguridad de que el origen de ese dato viene de la URL y no de un POST ni de una cookie. Sin embargo, todavia tienes que tener cuidado con el codigo que escribas. El ejemplo de siempre:
Código PHP:
<?php
if (("clave"==$_POST['clave']) && ("usuario"==$_POST['usuario'])) {
  
$ok=1;
}
if (
$ok) {
  echo 
"Bienvenido a la zona secreta.";
} else {
  echo 
"Usted no esta autorizado";
}
?>
Esto lo completas con un cutre formulario con los dos campos, y lo pones en un servidor con register_globals a On. Y prueba a entrar desde el formulario. Parece que funciona bien. Y ahora prueba a entrar poniendo directamente la URL de ese codigo pagina.php?ok=1 y mira lo que pasa. Y prueba eso mismo en un servidor con register_globals a OFF.

De todas formas, es solo codigo con un bug. Un bug oculto, que puede que lo veas si tienes error_reporting a E_ALL. Un bug que es un agujero de seguridad. Con lo sencillo que es acostumbrarse a inicializar todas las variables que sabes que son locales:
Código PHP:
<?php
$ok
=0;
if ((
"clave"==$_POST['clave']) && ("usuario"==$_POST['usuario'])) {
  
$ok=1;
}
if (
$ok) {
  echo 
"Bienvenido a la zona secreta.";
} else {
  echo 
"Usted no esta autorizado";
}
?>
Hay que coger buenas costumbres a la hora de programar.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.