In diesem Tutorial erfahren Sie, wie Sie den CSRF-Schutz (Cross-Site Request Forgery) in Lithe implementieren, um zu verhindern, dass in Ihrer Anwendung unerwünschte Anfragen gestellt werden. Dieser Leitfaden ist für Anfänger gedacht, also gehen wir in Teilen vor!
CSRF oder Cross-Site Request Forgery ist eine Angriffsart, bei der ein Benutzer dazu verleitet wird, eine nicht autorisierte Aktion auf einer Website auszuführen, auf der er authentifiziert ist. Dieser Angriff ist gefährlich, da der Angreifer Daten manipulieren oder auf gesperrte Bereiche zugreifen kann. Um dies zu verhindern, haben wir eine Sicherheitsschicht hinzugefügt, die die Verarbeitung verdächtiger Anfragen verhindert.
Lasst uns anfangen!
Wenn Sie Lithe noch nicht konfiguriert haben, beginnen Sie mit der Installation des Frameworks mit dem folgenden Befehl:
composer create-project lithephp/lithephp nome-do-projeto cd nome-do-projeto
Dadurch entsteht eine Grundstruktur für Ihr Lithe-Projekt.
CSRF-Middleware hilft bei der Generierung und Validierung von CSRF-Tokens. Führen Sie zur Installation den folgenden Befehl im Terminal Ihres Projekts aus:
composer require lithemod/csrf
Jetzt müssen wir Lithe mitteilen, dass wir die CSRF-Middleware verwenden möchten. Öffnen Sie die Hauptdatei src/App.php und fügen Sie die CSRF-Middleware hinzu.
use Lithe\Middleware\Security\csrf; use function Lithe\Orbis\Http\Router\router; $app = new \Lithe\App; // Configura o middleware CSRF com verificação automática no corpo da requisição $app->use(csrf([ 'expire' => 600, // Expiração do token após 10 minutos 'checkBody' => true, // Habilita a verificação automática no corpo 'bodyMethods' => ['POST', 'PUT', 'DELETE'], // Define os métodos para verificar o CSRF no corpo ])); $app->use(router(__DIR__ . '/routes/web')); $app->listen();
Damit ist die CSRF-Middleware in unserer Anwendung aktiv und jede Anfrage, die geschützt werden muss, muss ein gültiges Token enthalten.
Um den CSRF-Schutz zu nutzen, müssen wir ein eindeutiges Token generieren und es in Anfragen einschließen. Erstellen wir eine Route zum Senden eines Formulars, das automatisch das CSRF-Token enthält.
use Lithe\Http\{Request, Response}; use function Lithe\Orbis\Http\Router\get; get('/form', function (Request $req, Response $res) { // Gera o campo de token CSRF $tokenField = $req->csrf->getTokenField(); // Envia o HTML com o token incluído no formulário return $res->send(" <form method='POST' action='/submit'> $tokenField <input type='text' name='data' placeholder='Digite algo' required> <button type='submit'>Enviar</button> </form> "); });
Beim Absenden des Formulars prüft Lithe automatisch, ob der Token gültig ist. Erstellen wir nun die Route, die das Formular empfängt und verarbeitet.
composer create-project lithephp/lithephp nome-do-projeto cd nome-do-projeto
Wenn das Token ungültig ist oder fehlt, blockiert Lithe automatisch die Anfrage und gibt einen Fehler zurück.
Wenn Sie im Frontend eine POST-Anfrage (oder eine andere Datenänderungsmethode) senden müssen, ist es wichtig, das CSRF-Token in den Anfragetext oder -header aufzunehmen, je nachdem, wie Sie Ihre Middleware konfiguriert haben.
Für diejenigen, die JavaScript verwenden, ist hier ein Beispiel, wie das Token mit einer Abrufanforderung gesendet wird:
composer require lithemod/csrf
In diesem Tutorial lernen wir:
Mit diesem Schutz machen Sie Ihre Anwendung sicherer gegen CSRF-Angriffe und tragen so zum Schutz der Integrität der Daten Ihrer Benutzer bei.
Ausführlichere Informationen finden Sie in der offiziellen Lithe-Dokumentation.
Das obige ist der detaillierte Inhalt vonSichern Sie Ihre Anwendung mit CSRF auf Lithe. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!