Laravel Defender
Laravel Defender es un paquete de seguridad para aplicaciones Laravel. Detecta y bloquea peticiones sospechosas, y los registros se quedan en tu servidor.
Funcionalidades
- Honeypot antispam: bloquea bots con campos ocultos y validación de tiempo, automáticamente en todos los formularios o solo en las rutas que elijas.
- Detección de patrones de ataque: analiza user-agents, rutas de ataque conocidas, credenciales genéricas e intentos de path traversal en tiempo real.
- Protección contra fuerza bruta: limita los intentos de acceso por IP dentro de una ventana de tiempo configurable.
- Bloqueo de IP: bloquea o desbloquea IPs desde la línea de comandos, de forma temporal o permanente, con consulta rápida en caché.
- Bloqueo automático: bloquea solas las IPs que acumulan incidentes dentro de un periodo configurable.
- Control de acceso por país: permite o deniega tráfico según la geolocalización de la IP, con varios proveedores compatibles.
- Reputación de IP: consulta la puntuación de AbuseIPDB de las IPs ya marcadas como sospechosas y, si quieres, las bloquea.
- Alertas: notifica cada amenaza por log, base de datos, correo, Slack, webhook o un canal propio.
- Auditoría de configuración: detecta configuraciones inseguras y cabeceras de seguridad que faltan con un solo comando.
- Eventos: emite eventos que puedes escuchar desde tu aplicación para reaccionar a amenazas o bloqueos.
Detección de amenazas
El paquete identifica user-agents maliciosos (curl, wget, sqlmap), rutas habituales de ataque (/wp-admin, /xmlrpc.php), credenciales genéricas, intentos de path traversal y patrones de fuzzing, y lo combina con la geolocalización de la IP.
Alertas y registro de actividad
Cada evento sospechoso se puede guardar en el log de Laravel o en la base de datos, o enviar por correo o Slack. Desde la consola puedes consultar, exportar (CSV/JSON), ver estadísticas y limpiar los registros antiguos con defender:ip-logs, defender:export-logs, defender:stats y defender:prune-logs.
Integración con tu aplicación
Laravel Defender emite los eventos SuspiciousRequestDetected e IpBlocked, que puedes escuchar para añadir tu propia lógica. Si tienes Laravel Pulse instalado, el paquete añade una tarjeta con las amenazas detectadas y las IPs más activas.
Privacidad
Las detecciones, los bloqueos y los registros se hacen en tu servidor. Solo la geolocalización de la IP y la consulta de reputación, que son opcionales, usan servicios externos. El código es abierto y configurable, y tú decides qué se registra, dónde se envían las alertas y cuánto tiempo se conservan los datos.
Compatibilidad
Laravel 11 y 12 (PHP 8.2 o superior) y Laravel 13 (PHP 8.3 o superior), con traducciones al catalán, castellano e inglés.
¿Tienes una idea o quieres colaborar?
Si tienes una idea en mente, quieres colaborar en algún proyecto o simplemente quieres hablar de tecnología, escríbenos. Nos gusta conocer gente con ganas de hacer cosas.
Hablemos