Skip to main content

Cómo detuve un ataque de Bots en un Formulario de Contacto sin reCAPTCHA

Alejo Sotelo - Developer
Publicado el 19 Julio 2024 - Modificado el 19 Julio 2024

Cómo detuve un ataque de Bots en un Formulario de Contacto sin reCAPTCHA
Foto de Brian McGowan en Unsplash

Hoy quiero compartir una experiencia reciente que tuve con un ataque de bots a un formulario de contacto en uno de mis proyectos. Este incidente me llevó a profundizar en los logs de acceso y a implementar una solución rápida para mitigar el problema. Espero que esta guía sea útil para otros desarrolladores y sysadmins que se encuentren en una situación similar.

Introducción al Problema

Ayer, noté que los sitios web alojados en uno de mis servidores estaban funcionando de manera muy lenta. Después de investigar un poco, descubrí que la causa era un ataque de bots a un formulario de contacto que no tenía protección reCAPTCHA. Estos bots estaban enviando correos electrónicos masivos, consumiendo recursos del servidor y afectando el rendimiento general.

Identificación del Problema

El primer paso fue revisar los logs de acceso de Apache para identificar los patrones de los bots. Utilicé las herramientas cat, cut y grep para filtrar las llamadas/requests sospechosas y las IPs involucradas en el ataque.

Comando para revisar los logs

Primero, abrí el archivo de logs con cat y filtré las líneas que contenían el endpoint del formulario de contacto:

cat /var/log/apache2/access.log | grep "contact/contact/1.html"

Esto me mostró todas las solicitudes a contact/contact/1.html. Luego, usé cut para extraer las direcciones IP:

cat /var/log/apache2/access.log | grep "contact/contact/1.html" | cut -d ' ' -f 1

Bloqueo de IPs con APF

Una vez que tuve una lista de las IPs sospechosas, utilicé APF (Advanced Policy Firewall) para bloquearlas. Aquí está el proceso paso a paso:

  1. Bloquear IPs: Usé el comando apf para bloquear cada una de las IPs sospechosas. A continuación, un ejemplo de cómo bloquear una IP:

     sudo apf -d 192.168.1.1 "Bloqueo por ataque de bots"
    

    Repetí este comando para todas las IPs identificadas en los logs.

  2. Revisar y Reiniciar APF: Después de bloquear las IPs, revisé la configuración y reinicié APF para aplicar los cambios:

     sudo apf -r
    

Prevención Futura

Para prevenir futuros ataques de este tipo, decidí implementar reCAPTCHA en todos los formularios de contacto del sitio web de mi cliente. Esta es una medida adicional que puede ayudar a mitigar los ataques de bots de manera más efectiva. Otra medida efectiva es usar servicios como Cloudflare dónde se pueden bloquear estos ataques de manera más rápida porque se puede ver en tiempo real los accesos y por lo tanto detectar los patrones del ataque de manera visual y por lo tanto mas sencilla.

Conclusión

Enfrentar ataques de bots puede ser una experiencia frustrante, pero con las herramientas adecuadas y un poco de paciencia, podes proteger tu servidor y mantener tus sitios web funcionando sin problemas. Espero que este artículo te haya proporcionado una guía clara y útil sobre cómo manejar un ataque de bots y cómo implementar medidas preventivas.

Más artículos de Alejo A Sotelo - Desarrollo Web

12 Mayo 2026
Si trabajás en Linux, Mac o WSL (Windows Subsystem for Linux) y necesitás comprimir o descomprimir archivos desde la terminal, esta guía te va a salvar más de una vez. Cada formato tiene su propio comando, y es fácil confundirse…
07 Mayo 2026
Cuando migrás una tienda a Tiendanube, el trabajo no termina con pasar los productos. Quedan cientos de URLs viejas indexadas en Google que ahora dan 404, y cada una de esas páginas perdidas es autoridad SEO que se evapora. En mi…
28 Abril 2026
Desarrollé SA MCP Server, un componente open source para Joomla 3 y 4 que implementa el protocolo MCP (Model Context Protocol) y permite que asistentes de inteligencia artificial como Claude gestionen el contenido de tu sitio dir…
23 Abril 2026
Hace poco recibí el contacto de una persona cuyo sitio web en Joomla no es gestionado por mi equipo. Me contactó con urgencia: su página estaba funcionando mal, aparecían archivos extraños y temía que los datos de sus clientes es…