Laravel CSRF -Schutz

Laravel CSRF -Schutz
Die vollständige Form von CSRF ist die Forderung der Anfrage im Querbereich. Es handelt sich um einen Online -Angriff, bei dem der Angreifer Anfragen als autorisierter Benutzer an ein System sendet, indem er Zugriffsinformationen eines bestimmten Benutzers dieses Systems erhält und verschiedene Arten von böswilligen Aktivitäten durch die Identität dieses Benutzers ausführt. Die Auswirkungen dieses Angriffs hängen von den Privilegien des Opfers auf das System ab. Wenn das Opfer ein normaler Benutzer ist, wirkt sich dies nur auf die persönlichen Daten des Opfers aus. Wenn das Opfer jedoch der Administrator des Systems ist, kann der Angreifer das gesamte System beschädigen. Die Nutzer jeder Geschäftswebsite, soziale Netzwerke, kann durch diesen Angriff beeinflusst werden. Dieser Angriff kann leicht verhindert werden, indem Laravel CSRF -Schutz verwendet wird, um das System sicherer zu machen. Laravel generiert für jede aktive Benutzersitzung automatisch ein CRSF -Token. Wie Laravel CSRF -Schutz in der Laravel -Anwendung angewendet werden kann, wird in diesem Tutorial angezeigt.

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.

  • Apache/2.4.41 (Ubuntu)
  • Php 7.4.3 (CLI)
  • Mariadb Ver 15.1
  • Laravel Framework 7.25.0

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



CSRF -Schutz



Laravel CSRF-Schutzmethode-1



@csrf










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



CSRF -Schutz



Laravel CSRF-Schutzmethode-2














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



CSRF -Schutz



Laravel CSRF-Schutzmethode-3









csrf_field ()




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.