Cross-Site Request Forgery (CSRF) ist eine gemeinsame Methode zum Cyberangriff. Angreifer zwingen Benutzer, böswillige Anfragen zu initiieren, indem sie die Benutzerauthentifizierungsinformationen auf protokollierten Websites ausnutzen. Um CSRF -Angriffe effektiv zu verhindern, bietet das schlanke Framework einen Mechanismus zum Schutz unter Verwendung von Middleware. Dieser Artikel enthält detaillierte Beschreibungen zum Implementieren des CSRF -Schutzes im Slim -Framework, einschließlich der Installationsschritte, zum Erstellen von Middleware, zum Konfigurieren von Anwendungen und zur Überprüfung von CSRF -Token.
Zunächst müssen wir das schlanke Framework über Komponist installieren. Führen Sie den folgenden Befehl im Terminal aus, um ein neues Slim -Projekt zu erstellen:
Komponist erstellen-projekt-slim/schlankes my-App erstellen
Im schlanken Framework können wir den CSRF -Schutz durch Middleware -Mechanismen bewältigen. Dazu müssen wir eine Middleware -Datei mit dem Namen csrfMiddleware.php erstellen. Erstellen Sie zunächst ein Verzeichnis namens MiddleWares im Projektroot -Verzeichnis und erstellen Sie darin eine csrfMiddleware.php -Datei darin.
Hier ist ein Codebeispiel für CSRF Middleware:
<?php namespace App\Middlewares; class CsrfMiddleware extends SlimMiddlewareAntiCsrf { public function call() { $this-> app-> Hook ('Slim.before', [$ this, 'check']); $ this-> nächsten-> call (); } öffentliche Funktion validatestorage () { if (! $ this-> app-> view ()-> getData ('csrf_key') || ! $ this-> app-> view ()-> getData ('csrf_value')) { $ this-> app-> getLog ()-> fehler ('CSRF-Validierungsfehler: fehlender CSRF-Schlüssel und/oder Wert'); $ this-> App-> pass (); } } }
Als nächstes müssen Sie die CSRF Middleware registrieren, die Sie gerade in der schlanken Anwendung erstellt haben. Fügen Sie den folgenden Code zur Datei index.php hinzu, um die Middleware zu registrieren:
$ app = new Slimapp (); ... $ app-> add (neue App \ Middlewares \ csrfMiddleware ()); ... $ app-> run ();
Um die Form vor CSRF -Angriffen zu schützen, müssen wir der Form ein CSRF -Token hinzufügen. Dies wird erreicht, indem versteckte Felder in die Form eingefügt werden. Hier ist der Beispielcode zum Hinzufügen eines CSRF -Tokens:
<form action="/submit" method="post"> <input type="hidden" name="csrf_key" value="{{ csrf_key }}"> <input type="hidden" name="csrf_value" value="{{ csrf_value }}"> <!-- Andere Formfelder --> <button type="submit">einreichen</button> </form>
Auf der Serverseite müssen wir überprüfen, ob das CSRF -Token in der eingereichten Anfrage gültig ist. Hier ist ein Beispiel Routing -Prozessorcode:
$ app-> post ('/subieren', Funktion ($ request, $ response) { $ data = $ request-> getParsedBody (); // Anforderungsparameter abrufen // CSRF -Token $ csrf_key = $ data ['csrf_key']; $ csrf_value = $ data ['csrf_value']; if (! $ app-> csrf-> check ($ csrf_key, $ csrf_value)) { // CSRF Token-Überprüfung fehlgeschlagen $ response-> getBody ()-> write ('CSRF-Validierung fehlgeschlagen'); return $ response-> witstatus (403); } // Verarbeitungsformulareingabe // ... $ response-> getbody ()-> write ('erfolgreich eingereicht'); $ response return; });
Durch die Verwendung von Middleware im Slim -Framework können wir den CSRF -Schutz problemlos implementieren. Erstellen Sie zuerst CSRF Middleware, um das Token zu überprüfen und zu verarbeiten, und fügen Sie dann CSRF -Token zum Formular hinzu, um die Sicherheit von Benutzeranforderungen sicherzustellen. Auf diese Weise kann das schlanke Framework CSRF -Angriffe effektiv verhindern und die Sicherheit der Anwendung verbessern.