Cargando



Laravel

En este curso vamos a abordar uno de los frameworks más robustos de PHP, partiendo desde lo básico que es su instalación hasta la implementación de código complejo.


may 04 2014 06:14
Profesional
sep 07 2015 15:30

Proteger Formularios



Uno de los mayores problemas a los que nos enfrentamos cuando tenemos formularios de entrada de datos cuando publicamos nuestra aplicación en Internet es que así como nuestros usuarios pueden verlos, también lo ven los bots de spam pudiendo estos últimos ingresar una cantidad de datos basura que pueden afectarnos.

Para evitar estos problemas tenemos muchas opciones, una de ellas es crear campos que existan en el formulario pero que no sean visibles para el usuario, por lo que al momento de enviar dicho formulario, este campo debe estar en blanco, en caso que no lo esté, sabremos que es un bot quien intenta acceder a nuestra aplicación.

Primer paso
Lo primero que debemos hacer es construir la ruta con la cual podamos acceder a la vista del formulario, una vez hecho esto podemos pasar al formulario, como la generación de la ruta es algo básico y no es el objetivo de este curso vamos a pasar directamente a ver cómo debe lucir nuestro formulario.


Formulario

Los bots usualmente buscan campos comunes como username, email, mail, etc. Por ello lo que debemos hacer es crear un campo que contenga alguna de estas palabras y que no sea visible al usuario. Para ocultarlo podemos utilizar CSS, veamos en la siguiente imagen como podemos crear un formulario con un campo trampa para los bots.

laravel_proteger_form.jpg



Nos fijamos que tenemos nuestros campos usuales de username, password, email, estos campos son los que nos interesan, pero para confundir al bot de spam creamos un campo “no_email” que al contener la palabra email los atrae, luego en la definición de la clase form de Laravel le decimos que va a tener un estilo CSS de display: none, esto hace que cuando se muestre la vista el usuario humano no vea el campo.

Ruta de la Validación

Ahora debemos crear una ruta donde vamos a validar que nuestro campo trampa sea vacío, en caso de no serlo sabremos que es un bot de spam y no tomamos en cuenta esos datos que envía el formulario, veamos en la siguiente imagen como debe lucir la ruta:

laravel_proteger_form2.jpg



Lo que hacemos acá es inicialmente establecer las reglas del formulario, indicamos cuales son los campos requeridos y su tipo, en el caso del no_email le asignamos una regla personalizada llamada honey_pot, este es el nombre con el cual se conoce a este tipo de validación, así que si tenemos dudas podemos hacer una búsqueda en Google y encontraremos más información.

Luego validamos con la clase Validator como normalmente lo haríamos, lo interesante es que al final de nuestro ejemplo hemos definido la regla del honey_pot utilizando la clase Validator de Laravel, aquí le indicamos que el valor debe ser vacío.

Ya con esto cuando hagamos el llamado al formulario y lo ejecutemos, si el valor no_email está lleno se disparará un error, un dato interesante que no está en el ejemplo es que si se dispara un error por esta validación sería bueno enviar a una página en blanco para forzar al bot a ir a otro lugar diferente de nuestra aplicación.


¿Te ayudó este Tutorial?


3 Comentarios


Cristina Garcia
jun 10 2014 16:51
De fábula este curso. Muchas gracias Solvetic!!!! (Y jacosta :) )

Enrique Martin
jul 21 2014 14:58
Es la leche este curso. Mil millones de gracias Jacosta y Solvetic!!!!
DE 10.
No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X