Torna agli aggiornamenti
New releaseSep 3, 2026

laravel-threat-detection v1.7.2

Middleware Laravel passivo che rileva e registra SQL injection, XSS, RCE, scanner bot e oltre 175 pattern di attacco. Include una dashboard integrata, avvisi Slack, API REST e arricchimento geografico. IDS, non WAF.

Condividi

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

Laravel Threat Detection

Monitoraggio della sicurezza e registrazione degli attacchi per Laravel. Rileva e registra SQL injection, XSS, RCE, directory traversal, bot scanner e sonde di ricognizione in stile /wp-admin — ogni richiesta ostile viene registrata nel tuo database con il contesto completo dell'applicazione. È un IDS, non un WAF: non blocca, filtra o modifica mai una richiesta.

Installa il pacchetto, invia tre attacchi — SQL injection, directory traversal, XSS — ognuno restituisce HTTP 200 perché nulla viene bloccato, e tutti e tre sono già conteggiati in threat-detection:stats

Sei qui perché hai visto qualcosa del genere?

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

Quelle richieste stanno già raggiungendo la tua app Laravel. Il tuo access log mostra l'URL e il codice di stato, e nient'altro — non il payload decodificato, non quale delle tue route è stata presa di mira, non se lo stesso IP ha provato quaranta altre cose in questa ora.

Questo pacchetto risponde a queste domande. Inseriscilo in qualsiasi app Laravel 10–13 e inizia a scansionare ogni richiesta HTTP contro oltre 150 pattern di attacco, assegnando un punteggio a ogni corrispondenza in base alla confidenza e scrivendolo nel tuo database — con una dashboard integrata, avvisi Slack, geo-arricchimento ed esportazioni fail2ban/blocklist. Nessuna richiesta viene mai bloccata. Pensa a una telecamera di sicurezza, non a una serratura: ti mostra esattamente chi sta sondando le tue route, quanto spesso e con quali tecniche.

Estratto da un'app di produzione e collaudato su traffico reale. Oltre 2.400 test, nessuna dipendenza runtime oltre a Laravel stesso, e nessuna connessione internet richiesta per il rilevamento.

Stai aggiornando? Vedi UPGRADING.md. Vuoi contribuire? Vedi CONTRIBUTING.md.

Inizia in meno di un minuto

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

Poi aggiungi il middleware al tuo gruppo web (una riga in bootstrap/app.php su Laravel 11+, o app/Http/Kernel.php su Laravel 10) — lo snippet completo è in Quick Start qui sotto. Tutto qui; il rilevamento è attivo.

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

Dove si colloca: IDS vs WAF vs edge

Questo pacchetto è un IDS passivo a livello applicativo — osserva e registra, non blocca. È pensato per affiancare un WAF o un servizio edge, non per sostituirli. Ogni livello vede qualcosa che gli altri non possono vedere:

Questo pacchetto (app IDS)WAF (ModSecurity + OWASP CRS, Cloudflare WAF)Edge / CDN (Cloudflare)
Blocca richieste malevole❌ solo log✅✅
Contesto completo dell'app (URL esatto, payload decodificato, utente autenticato)✅⚠️ parziale❌
Dashboard integrata + log delle minacce nel tuo DB✅⚠️ variabile⚠️ solo edge
Rilevamenti specifici dell'app (es. PII Aadhaar / PAN / IFSC)✅ integrato + personalizzato⚠️ scrivi le tue regole⚠️ regole personalizzate, dipende dal piano
Funziona offline / nessun servizio esterno✅⚠️ dipende❌
Ferma il traffico prima che raggiunga il tuo server❌⚠️ solo WAF cloud✅
Configurazionecomposer require, migrate, una riga di middlewaremedia–altabassa–media
Costogratuito, MITvariabilepiano gratuito + a pagamento

In breve: un edge/WAF è la serratura sulla porta; questo è la telecamera di sicurezza all'interno, con il contesto dell'app per dirti esattamente cosa viene tentato su quale route, da chi, e con quale frequenza. Usalo per alimentare decisioni reali — ban fail2ban, rate limit, geo-blocking — con dati che il tuo livello edge non vede mai.

Cosa deliberatamente NON è

  • Non è un WAF. Non blocca, filtra o modifica mai una richiesta. Usa Cloudflare, mod_security, o un vero WAF per l'enforcement. (Nessun livello edge a cui delegare? Gli helper lato operatore espongono le decisioni del pacchetto così puoi scrivere il tuo middleware di blocco in cinque righe — il codice di enforcement resta tuo, non del pacchetto.)
  • Non è un sostituto della programmazione sicura. Query parametrizzate, validazione dell'input e escaping dell'output sono le tue vere difese. Questo pacchetto presuppone che il tuo codice sia già sicuro e ti offre visibilità, non protezione.
  • Non è un servizio edge. Se puoi mettere Cloudflare davanti, fallo — poi aggiungi questo per il dettaglio a livello applicativo che i servizi edge non possono vedere.
  • Non è un rilevatore completo, e non può esserlo. Il pattern matching intercetta attacchi che sembrano attacchi noti. Una tecnica nuova, o una familiare riscritta abbastanza, passerà senza essere registrata — e non ti verrà detto che è successo. Il silenzio qui significa "nulla ha corrisposto", mai "nulla è accaduto". Dove si guadagna il suo posto è nel traffico ad alto volume e basso sforzo che costituisce la maggior parte di ciò che effettivamente colpisce un'app Laravel pubblica: scanner, sonde di ricognizione, stringhe di injection pronte all'uso, credential spray. Tratta un log silenzioso come assenza di prove, non come prova di assenza.

Aspettati che segnali i tuoi stessi contenuti dal primo giorno

Categorie