Foros del Web » Programando para Internet » PHP »

Duda de seguridad en select's

Estas en el tema de Duda de seguridad en select's en el foro de PHP en Foros del Web. Hola a todos!!! Pues bien, resulta que si quiero que me introduzcan una fecha de nacimiento, la manejo con selects option(dia - mes - año), ...
  #1 (permalink)  
Antiguo 04/07/2007, 17:57
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Pregunta Duda de seguridad en select's

Hola a todos!!!

Pues bien, resulta que si quiero que me introduzcan una fecha de nacimiento, la manejo con selects option(dia - mes - año), tres selects. En el momento que recibo los datos por POST, pues lo ùnico que valido es que al concatenar dichos datos, sea una fecha vàlida, osea con checkdate().

Ahora leyendo sobre vulnerabilidades en php, me pregunto esto, es necesario que sabiendo que los datos que componen la fecha vienen de tres select's, valide aùn asì si son nùmeros?. Es que no creo que me puedan "atacar" por medio de select.... o sì????????

Saludos y gracias de antemano...
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #2 (permalink)  
Antiguo 04/07/2007, 18:02
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Re: Duda de seguridad en select's

Hombre, se supone que cuando validas con checkdate() si no son números dará un error. De todas formas, puedes comprobar si son números en formato fecha con ereg() y alguna expresión regular.
Aparte de eso, para evitar el SQL Injection, puedes usar addslashes() para evitar añadir algo a la consulta a la base de datos.
  #3 (permalink)  
Antiguo 04/07/2007, 18:08
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
De acuerdo Re: Duda de seguridad en select's

Ok!!! vale............

Simplemente creo que andaba paranoico no?

Gracias por tu aclaraciòn,

Saludos!
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #4 (permalink)  
Antiguo 04/07/2007, 18:16
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
De acuerdo Re: Duda de seguridad en select's

Ahhh que pena!! otra cosa mas...

Còmo encripto en php5 con sha256?? habrà algùn link de ayuda pora ahì?? Encontrè para php4, pero no sè si me sirva pa' php5...

Alguien me puede dar una mano?. Gracias de nuevo!
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #5 (permalink)  
Antiguo 04/07/2007, 18:30
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Re: Duda de seguridad en select's

Cita:
Iniciado por Carxl Ver Mensaje
Ahora leyendo sobre vulnerabilidades en php, me pregunto esto, es necesario que sabiendo que los datos que componen la fecha vienen de tres select's, valide aùn asì si son nùmeros?. Es que no creo que me puedan "atacar" por medio de select.... o sì????????
Con checkdate() no validas del todo que sean números. Te pongo un ejemplo:
Código PHP:
$mes "12' inyecto comillas y codigo";
$dia 31;
$anyo 2007;

if( 
checkdate($mes$dia$anyo) ){
    echo 
"CORRECTO";

}else{
    echo 
"INCORRECTO";

Como verás, en $mes he puesto una cadena que, al iniciar con un valor numérico, pasa la validación del checkdate() cuando, en teoría, no debería.

Ahora, tú pensarás que es imposible que $mes llegue a tener ese valor, debido a que controlas la entrada con un select. Pero no te confíes tanto. Si alguien quisiera atacarte aprovechando esa vulnerabilidad, enviaría directamente las variables que quiera a través del método POST sin utilizar tu formulario.

Conclusión:
Cuando manejemos datos de formulario (sobretodo si son sensibles):

1.- Controlar entradas vía formulario (como lo haces con el select).
2.- Validar entrada vía JavaScript.
3.- Validar en el servidor vía PHP.

Las dos primeras no garantizan seguridad. Simplemente te ayudan a minimizar los errores que pueda cometer el usuario. La tercera sí te da una capa de seguridad.

Saludos,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:55.