Ver Mensaje Individual
  #3 (permalink)  
Antiguo 13/03/2012, 05:14
bray
 
Fecha de Ingreso: agosto-2011
Mensajes: 110
Antigüedad: 12 años, 8 meses
Puntos: 13
Respuesta: ¿ Seguridad para los campos ocultos de formularios ?

Hola, interesannte cuestion. a ver si te sirve esto

1º En el script receptor ten una lista de los campos del formulario de forma que, si hay campos extra o un campo no coincide con el valor que deberia, no procesas el formulario , te explico.

tienes un formulario con 4 campos (nombreReal, nombreUsuario, password, IdentificadorOculto) si por cualquier motivo no recibes exactamente esos 4 campos, no procesas y devuelves el formulario . evitando asi que se hayan manipulado o incluido campos.

2º Valida los datos recibidos. no permitas etiquetas HTML en ningun campo y utiliza o bien plantillas de consultas ("prepared statements") o funciones como mysql_real_scape_String() para evitar que te cuelen mas de un usuario.

3º Establece un identificador a tu formulario de forma que cuando recibas los datos primero compruebes que ha sido tu formulario el que lo ha enviado. hay tutoriales en internet sobre este tipo de tecnicas

4º en cuanto al campo oculto: PHP utiliza cookies para las sesiones. 1 cookie con la id de sesion del usuario se almacena en el navegador del usuario (esta id es generada automaticamente por php) y el resto de los datos de las variables de sesion se alamcenan en el servidor. por lo que los datos de las variables de sesion (array $_SESSION) no son accesibles desde el navegador y por lo tanto su contenido es mas complicado de modificar que el de un campo input.

Para asegurar el campo input puedes hacer una cosa. Puedes codificar el contenido del campo mediante una clave(10 caracteres o más y a ser posible, totalmente aleatorios) cuando lo dibujes en el formulario y deshacer la codificacion al llegar al script de destino(el que procesa el formulario) y compararlo con la variable de sesión que almacena el id para comprobar que es el mismo. De esta forma tambien puedes comprobar si es un ataque y no procesar el formulario o hacer creer al usuario que si lo has hecho y enviarlo a un honeypot , por ejemplo.