Wafy est un package Laravel développé par Bdsa pour bannir automatiquement les adresses IP et détecter les requêtes malveillantes telles que les tentatives d'injection SQL.
Ce fichier README.md explique les étapes pour installer, configurer et utiliser le package wafy dans un projet Laravel. Il inclut des instructions pour :
- Ajouter le package via Composer.
- Publier la configuration et la migration.
- Appliquer la migration.
- Utiliser les middlewares et les commandes artisan.
- Configurer les patterns de détection des requêtes malveillantes.
Dans le fichier composer.json
de votre projet Laravel, ajoutez ce package :
"repositories": [
{
"type": "vcs",
"url": "https://github.com/tomakakwark/wafy"
}
],
"require": {
"bdsa/wafy": "dev-main"
}
composer update
php artisan vendor:publish --provider="Bdsa\Wafy\WafyServiceProvider"
php artisan migrate
Le package fournit deux middlewares principaux :
BlockBannedIp : Bloque l'accès des IP bannies à l'application. DetectMaliciousRequests : Détecte les requêtes malveillantes (comme les tentatives d'injection SQL) et bannit automatiquement les adresses IP correspondantes. Pour les utiliser, ajoutez-les dans le fichier app/Http/Kernel.php de votre projet Laravel, dans la section $middleware ou $routeMiddleware :
protected $middleware = [
\Bdsa\Wafy\Middleware\BlockBannedIp::class,
\Bdsa\Wafy\Middleware\DetectMaliciousRequests::class,
];
Le package fournit également trois commandes artisan pour gérer les IP bannies :
Bannir une IP :
php artisan waf:ban {adresse_ip}
Déban une IP :
php artisan waf:unban {adresse_ip}
Afficher les IP bannies :
php artisan wafy:list
return [
'patterns' => [
'/(select\s.*from|union\s.*select|information_schema|concat|0x)/i',
'/(\*.*from|where.*=.*\d)/i',
],
];
Voici un exemple d'intégration des middlewares dans un groupe de routes :
Route::group(['middleware' => ['block.banned.ip', 'detect.malicious.requests']], function () {
Route::get('/', function () {
return view('welcome');
});
// Autres routes ici
});