Slim est l'un de mes frameworks préférés. Étant donné que Slim est un micro-framework, l'implémentation du pare-feu Shieldon est également facile. Sans plus tarder, commençons.
Utilisez PHP Composer :
composer require shieldon/shieldon
Cela installera également les dépendances requises pour Shieldon :
Vous pouvez créer votre propre Middleware ou simplement utiliser la classe d'intégration.
Exemple :
class MiddlewarePareFeu
{
/**
* Exemple de classe invocable pour le Middleware
*
* @param ServerRequest $request Requête PSR-7
* @param RequestHandler $handler Gestionnaire de requêtes PSR-15
*
* @return Response
*/
public function __invoke(Request $request, RequestHandler $handler): Response
{
$response = $handler->handle($request);
$firewall = new \Shieldon\Firewall\Firewall($request, $response);
// Le répertoire où le pare-feu Shieldon placera ses fichiers.
$firewall->configure(__DIR__ . '/../cache/shieldon_firewall');
$response = $firewall->run();
if ($response->getStatusCode() !== 200) {
$httpResolver = new \Shieldon\Firewall\HttpResolver();
$httpResolver($response);
}
return $response;
}
}
Par exemple, si vous utilisez le framework Slim 4, le code devrait ressembler à ceci.
Exemple :
$app->add(new MiddlewarePareFeu());
Ou, si vous préférez utiliser la classe d'intégration, voici le code.
Exemple :
$app->add(new \Shieldon\Firewall\Integration\Slim4);
Par exemple, si vous utilisez le framework Slim 4, le code devrait ressembler à ceci. Vous pourrez ensuite accéder à l'URL https://votresite.com/firewall/panel/
pour vous connecter au panneau de contrôle.
Exemple :
$app->any('/firewall/panel[/{params:.*}]', function (Request $request, Response $response, $args) {
$firewall = new \Shieldon\Firewall\Firewall($request);
// Le répertoire où le pare-feu Shieldon placera ses fichiers.
// Doit être le même que celui du Middleware du pare-feu.
$firewall->configure(__DIR__ . '/../cache/shieldon_firewall');
// L'URL de base pour le panneau de contrôle.
$firewall->controlPanel('/firewall/panel/');
$panel = new \Shieldon\Firewall\Panel();
// Début - Configuration des champs CSRF si vous avez activé Slim-CSRF
$csrf = new \Slim\Csrf\Guard();
$nameKey = $csrf->getTokenNameKey();
$valueKey = $csrf->getTokenValueKey();
$csrfName = $request->getAttribute('csrf_name');
$csrfVale = $request->getAttribute('csrf_value');
$panel->csrf(
[$nameKey => $csrfName],
[$valueKey => $csrfVale]
);
// Fin - Slim-CSRF
$panel->entry();
});
Note :
POST
et GET
doivent toutes deux être appliquées à votre site web.POST
est nécessaire pour résoudre les CAPTCHA par les utilisateurs temporairement bloqués.C'est tout.
Shieldon propose une classe d'intégration prête à l'emploi pour ce Middleware, il suffit de l'utiliser en suivant les étapes suivantes.
Exemple :
$app->add(new \Shieldon\Firewall\Integration\Slim3);
Par exemple, si vous utilisez le squelette Slim 3, le code dans middleware.php
ressemblera à ceci :
Exemple :
<?php
use Slim\App;
return function (App $app) {
$app->add(new \Shieldon\Firewall\Integration\Slim3);
$app->add(new \Slim\Csrf\Guard);
};
Par exemple, si vous utilisez le framework Slim 4, le code devrait ressembler à ceci. Vous pourrez ensuite accéder à l'URL https://votresite.com/firewall/panel/
pour vous connecter au panneau de contrôle.
Exemple :
$app->map(['GET', 'POST'], '/firewall/panel[/{params:.*}]', function (Request $request, Response $response, array $args) {
$firewall = new \Shieldon\Firewall\Firewall($request);
// Le répertoire où le pare-feu Shieldon placera ses fichiers.
// Doit être le même que celui du Middleware du pare-feu.
$firewall->configure(__DIR__ . '/../cache/shieldon_firewall');
// L'URL de base pour le panneau de contrôle.
$firewall->controlPanel('/firewall/panel/');
$panel = new \Shieldon\Firewall\Panel();
// Début - Configuration des champs CSRF si vous avez activé Slim-CSRF
$csrf = new \Slim\Csrf\Guard();
$nameKey = $csrf->getTokenNameKey();
$valueKey = $csrf->getTokenValueKey();
$csrfName = $request->getAttribute('csrf_name');
$csrfVale = $request->getAttribute('csrf_value');
$panel->csrf(
[$nameKey => $csrfName],
[$valueKey => $csrfVale]
);
// Fin - Slim-CSRF
$panel->entry();
});
C'est tout.
Vous pouvez accéder au Panneau de Contrôle du Pare-feu via /firewall/panel/
. Pour voir la page, rendez-vous à cette URL dans votre navigateur.
https://votresite.com/firewall/panel/
La connexion par défaut est shieldon_user
et le mot de passe est shieldon_pass
. Après vous être connecté au Panneau de Contrôle du Pare-feu, la première chose à faire est de modifier le nom d'utilisateur et le mot de passe.
Si le pare-feu Shieldon est activé dans la section de configuration Daemon
, il commencera à surveiller votre site web. Assurez-vous d'avoir correctement configuré les paramètres.