Proteger formularios del SPAM utilizando reCAPTCHA v2

07/09/2019 | HTML, PHP, Seguridad | 0 comentarios

Protege tus formularios de los spammers que intentan enviar publicidad no solicitada, utilizando reCAPTCHA lo lograrás con sencillos pasos.

Descargar archivos Ver ejemplo

Si en tu web tienes formularios estarás expuesto a ataques por parte de robots o scripts automatizados que intentan extraer información o enviar publicidad no deseada.

Captcha

Captcha es un tipo de prueba automatizada para verificar que el usuario que interactúa con una pantalla es un humano.

Un tipo de captcha es mostrar una texto distorsionado para solicitar al usuario que lo escriba para validarlo, otra opción es mostrar una operación matemática y solicitar el resultado al usuario.

Con el avance de la tecnología estas formas de captcha son fácilmente saltadas por los spammers, para ello hay servicios especializados como reCAPTCHA que van mejorando los algoritmos de validación y a la vez disminuyendo la complejidad para el usuario final.

reCAPTCHA

reCAPTCHA es un servicio gratuito de Google que permite verificar que los usuarios son reales. Utilizaremos reCAPTCHA v2 que sólo muestra un checkbox, pero cuando detecta comportamiento sospechoso hará una validación adicional con una serie de imágenes.

Obteniendo el API Key

Para utilizar reCAPCHA es necesario registrarse y dar de alta a nuestro dominio para obtener las llaves de acceso siguientes:

  • Site Key: se utiliza en el HTML.
  • Secret Key: se utiliza del lado de servidor.

Integrar reCAPTCHA en Frontend

Para utilizar reCAPTCHA primero se incluye el archivo JavaScript:

Luego la etiqueta donde se visualizará el captcha, donde se usa el Site Key.

Uniendo todo en un formulario se tiene el siguiente código:

Eventos de reCAPTCHA

reCAPTCHA permite ejecutar funciones JavaScript cuando el usuario interactúa con el captcha, para esto se utiliza el atributo data-callback donde se especifica la función a ejecutar.

Para el ejemplo anterior, se desactiva el botón de envío de formulario y sólo se activa cuando el usuario haya validado el reCAPTCHA.

Integrar reCAPTCHA en Backend

Para completar el proceso es necesario verificar que los datos enviados desde el formulario son validos. Para ello utilizaremos el API de reCAPTCHA donde se deben enviar vía POST dos parámetros:

  • secret: que es Secret Key creado previamente.
  • response: es el valor enviado por reCAPTCHA en el campo g-recaptcha-response

Con esta información creamos un script PHP para validar el reCAPTCHA.

Conclusiones

Con pocos pasos es posible integrar de manera sencilla reCAPTCHA y así reducir la cantidad de contenido malicioso por parte de spammers o robots automatizados. Es necesario hacer la validación a nivel de frontend y backend para que la protección sea la adecuada.

Referencias

Envíar Comentario

En este sitio los comentarios se publican previa aprobación del equipo de Kodetop. Evita los comentarios ofensivos, obscenos o publicitarios. Si deseas publicar código fuente puedes hacerlo entre las etiquedas <pre></pre>