Volver a actualizaciones
Nuevo releaseSep 3, 2026

laravel-threat-detection v1.7.2

Middleware pasivo de Laravel que detecta y registra inyección SQL, XSS, RCE, escáneres de bots y más de 175 patrones de ataque. Incluye un panel integrado, alertas de Slack, API REST y enriquecimiento geográfico. IDS, no WAF.

Compartir

Latest Version Tests PHPStan Level 5 Code Style Pint Total Downloads PHP Version License

Laravel Threat Detection

Monitoreo de seguridad y registro de ataques para Laravel. Detecta y registra inyección SQL, XSS, RCE, directory traversal, escáneres de bots y sondas de reconocimiento estilo /wp-admin — cada solicitud hostil registrada en tu base de datos con el contexto completo de la aplicación. Es un IDS, no un WAF: nunca bloquea, filtra ni modifica una solicitud.

Install the package, send three attacks — SQL injection, directory traversal, XSS — every one returns HTTP 200 because nothing is blocked, and all three are already counted in threat-detection:stats

¿Estás aquí porque viste algo como esto?

GET /wp-admin/setup-config.php          404   — on a site that isn't WordPress
GET /.env                               404   — someone wants your database password
GET /?id=1' UNION SELECT password FROM  200   — SQL injection against a real route
GET /phpmyadmin/index.php               404   — scanning for an admin panel

Esas solicitudes ya están llegando a tu aplicación Laravel. Tu registro de acceso muestra la URL y el código de estado, y nada más — ni la carga útil decodificada, ni cuál de tus rutas fue el objetivo, ni si la misma IP ha intentado cuarenta cosas más esta hora.

Este paquete responde a esas preguntas. Colócalo en cualquier aplicación Laravel 10–13 y comenzará a escanear cada solicitud HTTP contra más de 150 patrones de ataque, puntuando cada coincidencia por confianza y escribiéndola en tu base de datos — con un panel integrado, alertas de Slack, enriquecimiento geográfico y exportaciones para fail2ban/listas de bloqueo. Ninguna solicitud se bloquea nunca. Piensa en una cámara de seguridad, no en una cerradura: te muestra exactamente quién está sondeando tus rutas, con qué frecuencia y con qué técnicas.

Extraído de una aplicación en producción y probado en batalla con tráfico real. Más de 2.400 pruebas, sin dependencias en tiempo de ejecución más allá de Laravel mismo, y sin necesidad de conexión a internet para la detección.

¿Actualizando? Consulta UPGRADING.md. ¿Contribuyendo? Consulta CONTRIBUTING.md.

Comienza en menos de un minuto

composer require jayanta/laravel-threat-detection
php artisan vendor:publish --tag=threat-detection-migrations
php artisan migrate

Luego añade el middleware a tu grupo web (una línea en bootstrap/app.php en Laravel 11+, o app/Http/Kernel.php en Laravel 10) — el fragmento completo está en Quick Start más abajo. Eso es todo; la detección está activa.

php artisan threat-detection:doctor   # confirms it is actually recording

Dónde encaja: IDS vs WAF vs edge

Este paquete es un IDS pasivo a nivel de aplicación — observa y registra, no bloquea. Está pensado para situarse junto a un WAF o un servicio de edge, no para reemplazarlos. Cada capa ve algo que las demás no pueden:

Este paquete (IDS de aplicación)WAF (ModSecurity + OWASP CRS, Cloudflare WAF)Edge / CDN (Cloudflare)
Bloquea peticiones maliciosas❌ solo registra✅✅
Contexto completo de la app (URL exacta, payload decodificado, usuario autenticado)✅⚠️ parcial❌
Panel integrado + registro de amenazas en tu BD✅⚠️ varía⚠️ solo en el edge
Detecciones específicas de la app (p. ej. PII de Aadhaar / PAN / IFSC)✅ integradas + personalizadas⚠️ escribe tus propias reglas⚠️ reglas personalizadas, según el plan
Funciona sin conexión / sin servicio externo✅⚠️ depende❌
Detiene el tráfico antes de que llegue a tu servidor❌⚠️ solo WAF en la nube✅
Configuracióncomposer require, migrar, una línea de middlewaremedia–altabaja–media
Costegratis, MITvaríacapa gratuita + de pago

La versión corta: un edge/WAF es la cerradura de la puerta; esto es la cámara de seguridad de dentro, con el contexto de la app para decirte exactamente qué se está intentando en qué ruta, por quién y con qué frecuencia. Úsalo para alimentar decisiones reales — baneos de fail2ban, límites de tasa, bloqueo geográfico — con datos que tu capa de edge nunca ve.

Lo que deliberadamente NO es

  • No es un WAF. Nunca bloquea, filtra ni modifica una petición. Usa Cloudflare, mod_security o un WAF real para la aplicación de políticas. (¿No tienes una capa de edge a la que delegar? Los helpers del lado del operador exponen las decisiones del paquete para que puedas escribir tu propio middleware de bloqueo de cinco líneas — el código de aplicación de políticas sigue siendo tuyo, no del paquete.)
  • No es un reemplazo de la codificación segura. Las consultas parametrizadas, la validación de entrada y el escapado de salida son tus defensas reales. Este paquete asume que tu código ya es seguro y te da visibilidad, no protección.
  • No es un servicio de edge. Si puedes poner Cloudflare delante, hazlo — luego añade esto para el detalle a nivel de aplicación que los servicios de edge no pueden ver.
  • No es un detector completo, y no puede serlo. La coincidencia de patrones captura ataques que parecen ataques conocidos. Una técnica novedosa, o una conocida reescrita lo suficiente, pasará sin registrarse — y no se te avisará de que lo hizo. El silencio aquí significa "no coincidió nada", nunca "no pasó nada". Donde se gana su lugar es en el tráfico de alto volumen y bajo esfuerzo que constituye la mayor parte de lo que realmente golpea una app Laravel pública: escáneres, sondas de reconocimiento, cadenas de inyección listas para usar, ataques de credenciales. Trata un registro silencioso como ausencia de evidencia, no como evidencia de ausencia.

Espera que marque tu propio contenido desde el primer día

Categorías