¿Cómo detener el spam en Contact Form 7?
Los formularios de los sitios web siempre han sido una de las principales fuentes de envío de correo spam.
La mayoría de estos correos son con fines comerciales, pero también hay correos maliciosos, ya que pueden contener enlaces a sitios de phishing, o sitios con malware.
Los spammers atacan tus formularios y los de todo mundo porque al final generan dinero, por lo menos para alguien. Pensemos en el spam a nivel global.
En este artículo exploramos diferentes métodos que nos ayudarán a evitar que el spam llegue a nuestra bandeja de entrada a través de los formularios creados con Contact Form 7.
Akismet: Protección de spam para WordPress
Akismet es un servicio anti-spam desarrollado por Automattic utilizado por millones de sitios web.
Para proteger nuestro sitio con Akismet lo primero tenemos que hacer es activar el plugin de Akismet. Akismet viene instalado con WordPress por lo que no será necesario instalarlo, sin embargo si no lo encontramos instalado en la sección de plugins, podemos instalarlo desde el directorio de plugins.
Para habilitar Akismet lo primero que tenemos que hacer es obtener un API Key. Si tu sitio es de uso personal puedes obtener una API Key completamente gratis, si piensas utilizarlo en un sitio con fines comerciales te recomiendo mejor utilizar el plugin de Jetpack.
Jetpack está desarrollado por Automattic, igual que Akismet, y el plan “Personal” o superiores incluyen el plan “Plus”, adicional a muchas grandes características que ofrece Jetpack cómo son seguridad, respaldos, optimización, herramientas para gestionar tu sitio, etc..
Utilizando Akismet con Contact Form 7
Cuando un usuario completa un formulario Akismet automáticamente analiza y filtra los mensajes que parecen ser spam. Si el mensaje es detectado como spam Contact Form 7 rechazará el mensaje y mostrará un mensaje diciendo lo siguiente: “There was an error trying to send your message”.
Para utilizar Contact Form 7 con Akismet lo único que tenemos que hacer es añadir los siguientes campos.
akismet:author - Agregamos esta etiqueta al campo donde los usuarios ingresan su nombre.
[text* your-name akismet:author]
akismet:author_email - Agregamos esta etiqueta al campo donde los usuarios ingresan su correo electrónico.
[email* your-email akismet:author_email]
akismet:author_url - Agregamos esta etiqueta al campo donde los usuarios ingresan el enlace de su página web.
[text your-url akismet:author_url]
Si quieres validar que efectivamente Akismet se encuentra funcionando correctamente, puedes hacerlo mediante una prueba ingresando viagra-test-123 en el campo de nombre, o akismet-guaranteed-spam@example.com en el campo del correo electrónico, Akismet detectara el spam y te notificará con un error.
reCAPTCHA: Facil para Humanos, Dificil para Bots
reCAPTCHA es un servicio gratuito de Google que permite proteger sitios web de spam. Un “CAPTCHA” es una sencilla prueba para poder catalogar a los usuarios del sitio web, quiénes son humanos y quienes son bots.
Contact Form 7 a partir de la versión v5.1 viene con la opción de configurar reCAPTCHA v3.
reCAPTCHA v3 te permite calificar el comportamiento de los usuarios que utilizan tu sitio web. La calificación se basa en la interacción con el sitio web. Este proceso se realiza en el fondo por lo que el usuario ni siquiera lo notará.
Activando reCAPTCHA v3 en nuestro sitio de Wordpress
El primer paso es registrar nuestro sitio de Wordpress. reCAPTCHA es un servicio de Google por lo que será necesario contar con una cuenta para poder utilizarlo.
Seleccionamos reCAPTCHA v3 en la opción de tipo, e ingresamos el dominio de nuestro sitio web.
Después de registrar tu sitio web, reCAPTCHA te proporcionará un site key y un secret key. Copiamos estos datos y los ingresamos en la sección de “reCAPTCHA” del plugin de Contact Form 7.
Ahora que tus formularios se encuentran protegidos, reCAPTCHA calificará las solicitudes enviadas a través de los formularios para distinguir los humanos de los bots.
Ocultando la Insignia de Google reCAPTCHA
Cuando activamos Google reCAPTCHA v3 una nueva insignia se mostrará en la parte inferior derecha indicando que el sitio se encuentra protegido, pero ¿cómo podemos ocultarla?
De acuerdo a la documentación de Google, egalmente puedes ocultar la insignia, pero debes de incluir el siguiente texto.
This site is protected by reCAPTCHA and the Google
<a href="https://policies.google.com/privacy">Privacy Policy</a> and
<a href="https://policies.google.com/terms">Terms of Service</a> apply.
Para ocultar la insignia, agregamos la siguiente línea de código en tu archivo styles.css
.grecaptcha-badge { visibility: hidden; }
Jamás utilices la propiedad display:none; ya que esta propiedad deshabilita la protección de spam de reCAPTCHA v3.
Lista Negra de Comentario
Otra gran manera de detener los correos de spam es bloqueando palabras específicas o agregando direcciones IP de donde proviene el spam en la sección de comentario de la lista negra.
La lista negra de comentarios es una función del core de WordPress que permite gestionar los comentarios. Para utilizar esta función ingresamos a la sección de Discusiones en el administrador de Wordpress y agregamos las palabras que queremos bloquear.
Cuando una solicitud de formulario contenga alguna de estas palabras, dentro de los campos nombre, email, url, ip, o mensajes, este correo será tratado cómo spam, por lo que Wordpress no lo enviara.
Tambien podemos añadir la dirección ip de donde se origino el mensaje utilizando la etiqueta [_remote_ip] en Contact Form 7, si comienzas a recibir spam desde una dirección ip específica, podemos añadirle a la lista para que todos sus mensajes sean tratados cómo spam y nunca se envíen.
Honeypot para Contact Form 7
De acuerdo con Wikipedia, un Honeypot consiste en información que parece ser legítima e importante para el atacante, pero en realidad esa información está siendo aislada y monitoreada y permite bloquear y analizar a los atacantes.
Honeypot for Contact Form 7 es un plugin que permite incluir campos adicionales a tu formulario de contacto, que los Bots de spam intentarán completar, la mayoría de los ataques de spam provienen de bots, y si estos bots completan estos campos, el mensaje será tratado cómo spam y por lo tanto nunca se enviará.
¿Cuál método debería de utilizar?
Todos los sitios creados con Wordpress reciben spam de forma diferente, lo que funcione para un sitio tal vez no funcione para otro, por eso te recomiendo que pruebes y combines todos los métodos explicados anteriormente.
Si te gustó este artículo, considera contribuir, tu apoyo significa mucho. Además, siempre estoy buscando mejorar, si tienes alguna crítica constructiva, házmelo saber.