Voraussetzungen:
Bevor Sie dieses Tutorial beginnen, müssen Sie sicherstellen, dass der Laravel installiert ist und im System ordnungsgemäß funktioniert. Ich habe die folgenden Anwendungen im System für dieses Tutorial installiert.
So implementieren Sie CSRF:
CSRF -Schutz kann in Laravel unter Verwendung eines beliebigen HTML -Formulars mit einer versteckten Form von CSRF -Token implementiert werden, und die Anforderung des Benutzer. Eine der folgenden Optionen kann verwendet werden, um ein CSRF -Token zu generieren.
A. @csrf
Es ist eine Klingenrichtlinie, um ein Token -Feld zu erzeugen, das zur Überprüfung verwendet wird. Es erzeugt ein verstecktes Eingangsfeld.
B. csrf_token ()
Diese Funktion kann im Meta -Tag und im versteckten Eingangsfeld des HTML -Formulars verwendet werden. Es generiert eine zufällige Zeichenfolge als CSRF -Token.
C. csrf_field ()
Diese Funktion erstellt ein verstecktes Feld für das HTML -Formular, in dem es verwendet wird, und erzeugt CSRF -Token.
Die Verwendungen der oben genannten Optionen werden unter Verwendung von HTML -Formularen im nächsten Abschnitt des Tutorials angezeigt.
Verwendung von @CSRF:
Erstellen Sie eine Laravel -Ansichtsdatei mit dem Namen CSRF1.Klinge.Php mit dem folgenden HTML -Code wo @csrf Die Richtlinie wird verwendet, um CSRF -Token zu generieren.
CSRF1.Klinge.Php
Fügen Sie die folgende Route in die hinzu Netz.Php Datei zum Laden der Ansichtsdatei im Browser. Wenn der Benutzer gibt CSRF1 Nach der Basis -URL wird sie suchen CSRF1.Klinge.Php Datei in der Sicht Ordner des Laravel -Projekts.
Route :: View ('/csrf1', 'csrf1');Starten Sie den Apache -Server und führen Sie die folgende URL vom Browser aus, um die Ansicht im Browser zu laden. Hier, LaravelPro ist der Laravel -Projektname. Sie können den Laravel Development Server auch mit dem Befehl PHP Artisan ausführen.
https: // localhost/laravelPro/public/csrf1
Wenn Sie die Seite inspizieren, erhalten Sie die Ausgabe wie unten wie unten. Hier wird ein verstecktes Feld mit dem Wert automatisch durch generiert @csrf Richtlinie.
Verwendung von csrf_token ():
Erstellen Sie eine Laravel -Ansichtsdatei mit dem Namen CSRF2.Klinge.Php mit dem folgenden HTML -Code, wobei der csrf_token () Funktion wird verwendet, um CSRF -Token zu generieren. Diese Funktion wird als Wert des Wertattributs des versteckten Feldes verwendet und mit zwei lockigen Klammern verwendet.
CSRF2.Klinge.Php
Fügen Sie die folgende Route hinzu in das Netz.Php Datei zum Laden der Ansichtsdatei im Browser. Wie die erste Methode, wenn der Benutzer gibt CSRF2 Nach der Basis -URL wird sie suchen CSRF2.Klinge.Php Datei in der Sicht Ordner des Laravel -Projekts.
Route :: View ('/csrf2', 'csrf2');Führen Sie die folgende URL von einem beliebigen Browser wie zuvor aus, um die zweite Ansichtsdatei zu laden.
https: // localhost/laravelPro/public/csrf2
Wenn Sie die Seite inspizieren, erhalten Sie die Ausgabe wie unten wie unten. Hier wird der Wert des versteckten Feldes durch die Verwendung der verwendet csrf_token () Funktion.
Verwendung von csrf_field ():
Erstellen Sie eine Laravel -Ansichtsdatei mit dem Namen CSRF3.Klinge.Php mit dem folgenden HTML -Code wo der csrf_field () Funktion wird verwendet, um CSRF -Token zu generieren. Diese Funktion funktioniert wie @csrf Richtlinie und Sie müssen in der HTML -Form kein verstecktes Feld hinzufügen. Es wird auch mit zwei lockigen Klammern wie verwendet csrf_token () Funktion.
CSRF3.Klinge.Php
Fügen Sie die folgende Route hinzu in das Netz.Php Datei zum Laden der Ansichtsdatei im Browser. Wie die erste Methode, wenn der Benutzer gibt CSRF3 Nach der Basis -URL wird sie suchen CSRF3.Klinge.Php Datei in der Sicht Ordner des Laravel -Projekts.
Route :: View ('/csrf3', 'csrf3');Führen Sie die folgende URL von einem beliebigen Browser wie zuvor aus, um die zweite Ansichtsdatei zu laden.
https: // localhost/laravelPro/public/csrf3
Wenn Sie die Seite inspizieren, erhalten Sie die Ausgabe wie unten wie unten. Hier wird der Wert des versteckten Feldes durch die Verwendung der verwendet csrf_field () Funktion.
Alle drei oben gezeigten Generierung von CSRF -Token erzeugen denselben Token -Wert für denselben Browser. Wenn der Angreifer eine Anfrage sendet, um auf den Inhalt eines authentifizierten Benutzers zuzugreifen, der dann online ist Verifycsrftoken Middleware entspricht dem Anfrage -Token und dem gespeicherten Sitzungs -Token, um die Anfrage vor der Behandlung zu validieren. Auf diese Weise kann der CSRF -Angriff in Laravel leicht verhindert werden. Dieser Schutz kann durch Entfernen des Eintritts von Laravel deaktiviert werden App \ http \ Middleware \ verifycsrftoken von $ Middleware Array aus der Datei App/HTTP/Kernel.Php.
Abschluss:
Der nicht autorisierte Zugriff kann einen großen Einfluss auf jede Anwendung haben und die Daten ordnungsgemäß beschädigen. Der CSRF -Schutz ist also sehr wichtig, um jede Anwendung zu sichern, bei der die verschiedenen Arten von transnationalen Aufgaben ausgeführt werden. Dieses Tutorial hilft den Laravel -Entwicklern, die Möglichkeiten zur Sicherung ihrer Anwendung mithilfe von CSRF -Schutz zu erkennen.