Middleware Laravel passif qui détecte et journalise les injections SQL, les XSS, les RCE, les scanners de bots et plus de 175 modèles d'attaques. Doté d'un tableau de bord intégré, d'alertes Slack, d'une API REST et d'un enrichissement géographique. IDS, pas WAF.
Surveillance de sécurité et journalisation des attaques pour Laravel. Détectez et journalisez les injections SQL,
XSS, RCE, traversées de répertoire, scanners de bots et sondes de reconnaissance de type /wp-admin —
chaque requête hostile enregistrée dans votre base de données avec le contexte applicatif complet.
C'est un IDS, pas un WAF : il ne bloque, ne filtre et ne modifie jamais une requête.
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
Ces requêtes atteignent déjà votre application Laravel. Votre journal d'accès affiche l'URL et le code de statut, et rien d'autre — ni la charge utile décodée, ni laquelle de vos routes a été ciblée, ni si la même IP a tenté quarante autres choses cette heure-ci.
Ce package répond à ces questions. Déposez-le dans n'importe quelle application Laravel 10–13 et il commence à analyser chaque requête HTTP par rapport à plus de 150 motifs d'attaque, en évaluant chaque correspondance par niveau de confiance et en l'enregistrant dans votre base de données — avec un tableau de bord intégré, des alertes Slack, un enrichissement géographique et des exports fail2ban/liste de blocage. Aucune requête n'est jamais bloquée. Pensez caméra de surveillance, pas verrou : il vous montre exactement qui sonde vos routes, à quelle fréquence et avec quelles techniques.
Extrait d'une application en production et éprouvé sur du trafic réel. Plus de 2 400 tests, aucune dépendance d'exécution en dehors de Laravel lui-même, et aucune connexion internet requise pour la détection.
Vous effectuez une mise à niveau ? Voir UPGRADING.md. Vous souhaitez contribuer ? Voir CONTRIBUTING.md.
composer require jayanta/laravel-threat-detection
php artisan vendor:publish --tag=threat-detection-migrations
php artisan migrate
Ensuite, ajoutez le middleware à votre groupe web (une ligne dans bootstrap/app.php sur Laravel 11+,
ou app/Http/Kernel.php sur Laravel 10) — l'extrait complet se trouve dans Quick Start ci-dessous.
C'est tout ; la détection est active.
php artisan threat-detection:doctor # confirms it is actually recording
Ce package est un IDS passif au niveau applicatif — il observe et enregistre, il ne bloque pas. Il est conçu pour se placer aux côtés d'un WAF ou d'un service edge, et non pour le remplacer. Chaque couche voit quelque chose que les autres ne peuvent pas voir :
| Ce package (IDS applicatif) | WAF (ModSecurity + OWASP CRS, Cloudflare WAF) | Edge / CDN (Cloudflare) | |
|---|---|---|---|
| Bloque les requêtes malveillantes | ❌ journalise uniquement | ✅ | ✅ |
| Contexte applicatif complet (URL exacte, payload décodé, utilisateur authentifié) | ✅ | ⚠️ partiel | ❌ |
| Tableau de bord intégré + journal des menaces dans votre BD | ✅ | ⚠️ variable | ⚠️ edge uniquement |
| Détections spécifiques à l'application (ex. PII Aadhaar / PAN / IFSC) | ✅ intégré + personnalisé | ⚠️ écrivez vos propres règles | ⚠️ règles personnalisées, selon le forfait |
| Fonctionne hors ligne / sans service externe | ✅ | ⚠️ dépend | ❌ |
| Arrête le trafic avant qu'il n'atteigne votre serveur | ❌ | ⚠️ WAF cloud uniquement | ✅ |
| Installation | composer require, migration, une ligne de middleware | moyenne–élevée | faible–moyenne |
| Coût | gratuit, MIT | variable | offre gratuite + payant |
En résumé : un edge/WAF est votre serrure sur la porte ; ceci est la caméra de surveillance à l'intérieur, avec le contexte applicatif pour vous dire exactement ce qui est tenté sur quelle route, par qui, et à quelle fréquence. Utilisez-le pour alimenter de vraies décisions — bans fail2ban, limites de débit, géo-blocage — avec des données que votre couche edge ne voit jamais.