Ver Mensaje Individual
  #3 (permalink)  
Antiguo 27/09/2010, 13:49
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 8 meses
Puntos: 20
Respuesta: Validar captcha con javascript

Cita:
Iniciado por maycolalvarez Ver Mensaje
en realidad lo que hace es enviar un AJAX, por lo tanto se valida en el servidor.

pero ¿te parece seguro enviar un ajax para validar el captcha y después reenviar otra vez los datos para volverlos a validar?: el punto es que debes enviar los datos junto con lo que el usuario escribió en el captcha, de modo que garantices la "humanidad" del usuario que envió dichos datos, es ilógico por ejemplo: validar el captcha primero, almacenar si es válido en un input hidden y después enviar los datos, porque con firebug por ejemplo puedo cambiar el value de dicho input por true y ¡ adiós captcha !, hasta con el mismo js lo puedo hacer y no digamos un bot!

por otro lado si envío el catcha por ajax y marco desde el servidor que el token del form está "validado por captcha" (tendría que enviar el token junto al captcha), ya el token no me sirve, tendría que generar otro, porque de lo contrario corro el riesgo se suplantación de mi token, y si uso sesiones: que me roben mi cookie por XSS.

así que lo mejor y más eficiente es validar el captcha desde el servidor, enviándolo junto el form completo, si son muchos forms, puedo validar en el login con catcha solo la primera vez, o si el numero de post es superior a cierta cantidad, suerte
Lo que quería evitar era tener que validar el captcha en el servidor, porque esto me provoca que tengo que recordar todos los valores que ha introducido el usuario, y si bien es fácil para los campos inputs guardarlos en variables de session, hay campos selects con más de 200 campos que resulta "complicado" imprimir dichos valores con la opción seleccionada por el usuario (no imposible, pero más complicado que los campos input).

Por que con JS no hay ninguna forma rápida de no perder estos datos al enviar el formulario y comprobar por ej. que el captcha recibido no es válido, y retornar otra vez el formulario pero rellenado con las opciones que ha marcado el usuario?

Muchas gracias de antemano!