
Middleware Laravel passivo que detecta e registra injeção de SQL, XSS, RCE, scanners de bot e mais de 175 padrões de ataque. Inclui painel integrado, alertas do Slack, API REST e enriquecimento geográfico. IDS, não WAF.
Monitoramento de segurança e registro de ataques para Laravel. Detecte e registre injeção de SQL,
XSS, RCE, directory traversal, scanners de bots e sondagens de reconhecimento no estilo /wp-admin —
cada requisição hostil registrada no seu banco de dados com o contexto completo da aplicação.
É um IDS, não um WAF: ele nunca bloqueia, filtra ou modifica uma requisição.
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
Essas requisições já estão chegando ao seu aplicativo Laravel. Seu log de acesso mostra a URL e o código de status, e nada mais — nem o payload decodificado, nem qual das suas rotas foi alvo, nem se o mesmo IP já tentou outras quarenta coisas nesta hora.
Este pacote responde a essas perguntas. Coloque-o em qualquer aplicativo Laravel 10–13 e ele começa a escanear cada requisição HTTP em busca de mais de 150 padrões de ataque, pontuando cada correspondência por confiança e gravando-a no seu banco de dados — com um dashboard integrado, alertas no Slack, enriquecimento geográfico e exportações para fail2ban/blocklist. Nenhuma requisição é bloqueada. Pense em câmera de segurança, não em fechadura: ela mostra exatamente quem está sondando suas rotas, com que frequência e com quais técnicas.
Extraído de um aplicativo em produção e testado em batalha com tráfego real. Mais de 2.400 testes, sem dependências de runtime além do próprio Laravel, e nenhuma conexão com a internet necessária para detecção.
Atualizando? Veja UPGRADING.md. Quer contribuir? Veja CONTRIBUTING.md.
composer require jayanta/laravel-threat-detection
php artisan vendor:publish --tag=threat-detection-migrations
php artisan migrate
Em seguida, adicione o middleware ao seu grupo web (uma linha em bootstrap/app.php no Laravel 11+,
ou app/Http/Kernel.php no Laravel 10) — trecho completo em Quick Start abaixo.
É isso; a detecção está ativa.
php artisan threat-detection:doctor # confirms it is actually recording
Este pacote é um IDS passivo, ao nível da aplicação — observa e registra, não bloqueia. Ele foi feito para ficar ao lado de um WAF ou serviço de edge, não para substituí-lo. Cada camada vê algo que as outras não conseguem:
| Este pacote (IDS de app) | WAF (ModSecurity + OWASP CRS, Cloudflare WAF) | Edge / CDN (Cloudflare) | |
|---|---|---|---|
| Bloqueia requisições maliciosas | ❌ apenas registra | ✅ | ✅ |
| Contexto completo da app (URL exata, payload decodificado, usuário autenticado) | ✅ | ⚠️ parcial | ❌ |
| Dashboard integrado + log de ameaças no seu banco | ✅ | ⚠️ varia | ⚠️ apenas no edge |
| Detecções específicas da app (ex.: PII de Aadhaar / PAN / IFSC) | ✅ integrado + personalizado | ⚠️ escreva suas próprias regras | ⚠️ regras personalizadas, dependente do plano |
| Funciona offline / sem serviço externo | ✅ | ⚠️ depende | ❌ |
| Interrompe o tráfego antes de chegar ao seu servidor | ❌ | ⚠️ apenas WAF em nuvem | ✅ |
| Configuração | composer require, migrar, uma linha de middleware | média–alta | baixa–média |
| Custo | gratuito, MIT | varia | camada gratuita + pago |
Resumindo: um edge/WAF é a fechadura da sua porta; isto é a câmera de segurança do lado de dentro, com o contexto da app para lhe dizer exatamente o que está sendo tentado em qual rota, por quem, e com que frequência. Use-o para alimentar decisões reais — bans do fail2ban, limites de taxa, geo-bloqueio — com dados que sua camada de edge nunca vê.