Usamos cookies propias y de terceros para mostrar publicidad. Si continua navegando consideramos que acepta el uso de cookies. OK Más información

Seguridad en formularios

Publicado por Israel Noguera

robot_spam.jpg

Conseguir un compromiso adecuado entre seguridad y usabilidad en un formulario web es un reto importante.

Habitualmente, los puntos más afectados de una web, son los formularios de contacto, formularios de comentarios en blogs o formularios en landing pages. Son formularios abiertos a todo tipo de usuario, donde no se requiere inicio de sesión ni de ningún tipo de presentación y comprobación de credenciales para rellenar el formulario.

¿Qué podemos hacer para evitar este tipo de spam sin que afecte al servicio y además suponga un engorro?

 

Moderar todo tipo de entrada que provenga de un formulario

No evitaremos que entre spam al sistema, pero al menos podemos filtrar este tipo de contenido y que no aparezca publicado en un foro, en un sistema de comentarios o se reenvíe el spam al destinatario del formulario, que podría ser un importante cliente.

 

Insertar un sistema de validación basado en Captcha

Este sistema es el más popular y que en más de una ocasión nos habremos encontrado. Consiste en descifrar un código alfa numérico, un conjunto de imágenes o incluso operaciones aritméticas.

En función de lo sofisticado que sea el tipo de Captcha, filtrará más o menos, pero os aseguro que los bots de spam han aprendido a saltarlo. Además que el uso de este tipo de captchas, perjudica seriamente la usabilidad web del formulario. ¿Cuántos formularios se habrán quedado sin enviar por la complejidad de estos o sencillamente porque el usuario ha pasado literalmente de completarlo?

 

Insertar un contador de tiempo

Consiste en crear un campo oculto donde se almacena la hora de acceso al formulario y una vez enviado el formulario se calcula la diferencia entre la hora de acceso al form y la hora de envío.

Se supone que si es un robot el que está completando el formulario, el tiempo de envío debería ser de milisegundos, por lo tanto, podríamos establecer un tiempo mínimo de envío, que sería el tiempo mínimo necesario en completar a mano los campos del formulario. Si el tiempo de envío es inferior al estipulado, se trata de un robot y procederiamos en consecuencia.

Podría parecer interesante y lógico, pero os aseguro que alguno de los robots que me he encontrado tienen en cuenta esta característica y se produce una demora media de 20 segundos en cada envío.

 

Añadir un campo no visible

Es la solución más sencilla de implementar y la más efectiva sin duda. Posiblemente sea una opción novedosa que todavía este tipo de robots no tienen en cuenta y no soportan.

Si partimos de la premisa que los robots de spam se limitan a localizar formularios y rellenarlos por completo ¿Qué podemos hacer? pues incluir un campo invisible para el usuario, oculto mediante CSS, pero que no estará oculto para el robot de spam y por consiguiente lo completará.

Tan solo tenemos que comprobar ese campo  y verificar que esté vacío, sino lo está, se trata de spam.

Parece tan sencillo que sorprende que funcione, pero funciona, vamos a ver cuanto dura el invento...

 

Por supuesto, podemos implementar técnicas más avanzadas para comprobar que quién completa el formulario es realmente un humano, pero seguro que estaremos atentando contra la usabilidad del formulario y reduciendo considerablemente el envío de formularios, que tratándose de formularios de conversión, supone un gran perjuicio.

Para cualquier duda al respecto ya más a nivel técnico, no dudes en comentar o escribirnos y lo resolvemos.

 

Comentarios 4 comentarios

Comentario

Isra

Pues la verdad es que sigue funcionando

Comentario

Aitor

Hola, el invento de ocultar el campo y si esta vacio es un ser humano sigue funcionando? o los robots ya lo saben que no han de rellenarlo?

israel

israel

Gracias Edu! buena idea, me añado el sistema a la lista.

Comentario

Edu Blanco

Muy interesante! Un sistema que he visto implementado en algún plugin de Wordpress (Cookies for Comments) es comprobar que exista una cookie en el navegador del usuario, ya que los robots no las guardan. Sencillo y efectivo. Saludos!