Slim Framework ist einer meiner Favoriten. Da Slim ein Micro-Framework ist, ist die Implementierung der Shieldon Firewall ebenfalls einfach. Ohne weitere Verzögerung, lassen Sie uns beginnen.
Verwenden Sie PHP Composer:
composer require shieldon/shieldon
Dies installiert auch die für Shieldon erforderlichen Abhängigkeiten:
Sie können eine Middleware selbst erstellen oder einfach die Integrationsklasse verwenden.
Beispiel:
class FirewallMiddleware
{
/**
* Beispiel Middleware-Aufrufklasse
*
* @param ServerRequest $request PSR-7-Anfrage
* @param RequestHandler $handler PSR-15-Anfrage-Handler
*
* @return Response
*/
public function __invoke(Request $request, RequestHandler $handler): Response
{
$response = $handler->handle($request);
$firewall = new \Shieldon\Firewall\Firewall($request, $response);
// Das Verzeichnis, in dem die Shieldon Firewall ihre Dateien ablegen wird.
$firewall->configure(__DIR__ . '/../cache/shieldon_firewall');
$response = $firewall->run();
if ($response->getStatusCode() !== 200) {
$httpResolver = new \Shieldon\Firewall\HttpResolver();
$httpResolver($response);
}
return $response;
}
}
Wenn Sie zum Beispiel das Slim 4-Framework verwenden, sollte der Code wie folgt aussehen.
Beispiel:
$app->add(new FirewallMiddleware());
Oder wenn Sie die Integrationsklasse bevorzugen, hier ist der Code.
Beispiel:
$app->add(new \Shieldon\Firewall\Integration\Slim4);
Wenn Sie zum Beispiel das Slim 4-Framework verwenden, sollte der Code wie folgt aussehen. Sie können dann auf die URL https://ihrewebseite.com/firewall/panel/
zugreifen, um sich am Kontrollpanel anzumelden.
Beispiel:
$app->any('/firewall/panel[/{params:.*}]', function (Request $request, Response $response, $args) {
$firewall = new \Shieldon\Firewall\Firewall($request);
// Das Verzeichnis, in dem die Shieldon Firewall ihre Dateien ablegen wird.
// Muss dem Firewall-Middleware-Verzeichnis entsprechen.
$firewall->configure(__DIR__ . '/../cache/shieldon_firewall');
// Die Basis-URL für das Kontrollpanel.
$firewall->controlPanel('/firewall/panel/');
$panel = new \Shieldon\Firewall\Panel();
// Beginn - CSRF-Felder einrichten, wenn Sie Slim-CSRF aktiviert haben
$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]
);
// Ende - Slim-CSRF
$panel->entry();
});
Hinweis:
POST
und GET
sollten beide auf Ihrer Webseite verwendet werden.POST
-Methode ist erforderlich, um von vorübergehend blockierten Benutzern CAPTCHA zu lösen.Das ist alles.
Für diese Middleware hat Shieldon bereits eine Integrationsklasse bereitgestellt. Verwenden Sie sie einfach gemäß den folgenden Schritten.
Beispiel:
$app->add(new \Shieldon\Firewall\Integration\Slim3);
Wenn Sie zum Beispiel das Slim3-Skelett verwenden, sieht der Code in middleware.php
wie folgt aus:
Beispiel:
<?php
use Slim\App;
return function (App $app) {
$app->add(new \Shieldon\Firewall\Integration\Slim3);
$app->add(new \Slim\Csrf\Guard);
};
Wenn Sie zum Beispiel das Slim 4-Framework verwenden, sollte der Code wie folgt aussehen. Sie können dann auf die URL https://ihrewebseite.com/firewall/panel/
zugreifen, um sich am Kontrollpanel anzumelden.
Beispiel:
$app->map(['GET', 'POST'], '/firewall/panel[/{params:.*}]', function (Request $request, Response $response, array $args) {
$firewall = new \Shieldon\Firewall\Firewall($request);
// Das Verzeichnis, in dem die Shieldon Firewall ihre Dateien ablegen wird.
// Muss dem Firewall-Middleware-Verzeichnis entsprechen.
$firewall->configure(__DIR__ . '/../cache/shieldon_firewall');
// Die Basis-URL für das Kontrollpanel.
$firewall->controlPanel('/firewall/panel/');
$panel = new \Shieldon\Firewall\Panel();
// Beginn - CSRF-Felder einrichten, wenn Sie Slim-CSRF aktiviert haben
$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]
);
// Ende - Slim-CSRF
$panel->entry();
});
Das ist alles.
Sie können auf das Firewall-Kontrollpanel über /firewall/panel/
zugreifen. Um die Seite anzuzeigen, geben Sie diese URL in Ihren Browser ein.
https://ihrewebseite.com/firewall/panel/
Der Standard-Login ist shieldon_user
und das Passwort ist shieldon_pass
. Nachdem Sie sich im Firewall-Kontrollpanel angemeldet haben, sollten Sie als Erstes den Login und das Passwort ändern.
Wenn die Shieldon Firewall in der Einstellung Daemon
aktiviert ist, beginnt sie mit der Überwachung Ihrer Webseite. Stellen Sie sicher, dass Sie die Einstellungen korrekt konfiguriert haben.