Heim > Artikel > PHP-Framework > Laravel – CSRF-Schutz
CSRF bezieht sich auf Cross-Site-Forgery-Angriffe auf Webanwendungen. CSRF-Angriffe sind nicht autorisierte Aktivitäten, die die authentifizierten Benutzer des Systems ausführen. Daher sind viele Webanwendungen anfällig für diese Angriffe.
Laravel bietet CSRF-Schutz auf folgende Weise: -
Laravel enthält ein integriertes CSRF-Plug-in, das Token für jede aktive Benutzersitzung generiert. Diese Token verifizieren, dass die Vorgänge oder Anfragen vom betreffenden authentifizierten Benutzer gesendet werden.
Die Implementierung des CSRF-Schutzes in Laravel wird in diesem Abschnitt ausführlich besprochen. Die folgenden Punkte sind zu beachten, bevor wir mit dem CSRF-Schutz fortfahren:
CSRF wird in HTML-Formularen implementiert, die in den Webanwendungen deklariert werden. Sie müssen ein verstecktes validiertes CSRF-Token in das Formular einfügen, damit die CSRF-Schutz-Middleware von Laravel die Anfrage validieren kann. Die Syntax ist unten dargestellt:
<form method = "POST" action="/profile"> {{ csrf_field() }} ... </form>
Sie können mithilfe der JavaScript-HTTP-Bibliothek bequem JavaScript-gesteuerte Anwendungen erstellen, da diese ein CSRF-Token für jede ausgehende Anfrage enthält.
Die Datei resources/assets/js/bootstrap.js registriert alle die Token für Laravel-Anwendungen und enthält das meta-Tag, das csrf-token mit der Axios HTTP-Bibliothek speichert.
Beachten Sie die folgenden Codezeilen. Sie zeigen ein Formular, das zwei Parameter als Eingabe akzeptiert: email und message.
<form><form><br/> <label> Email </label><br/> <input type = "text" name = "email"/><br/> <br/><br/> <label> Message </label> <input type="text" name = "message"/><br/> <input type = ”submit” name = ”submitButton” value = ”submit”><br/></form></form>
Das Ergebnis des obigen Codes ist das unten gezeigte Formular, das der Endbenutzer sehen kann −
he form shown above will accept any input information from an authorized user. This may make the web application prone to various attacks.
Please note that the submit button includes functionality in the controller section. The postContact function is used in controllers for that associated views. It is shown below −
public function postContact(Request $request) { return $request-> all(); }
Observe that the form does not include any CSRF tokens so the sensitive information shared as input parameters are prone to various attacks.
The following lines of code shows you the form re-designed using CSRF tokens −
<form method = ”post” > {{ csrf_field() }} <label> Email </label> <input type = "text" name = "email"/> <br/> <label> Message </label> <input type = "text" name = "message"/> <input type = ”submit” name = ”submitButton” value = ”submit”> </form>
The output achieved will return JSON with a token as given below −
{ "token": "ghfleifxDSUYEW9WE67877CXNVFJKL", "name": "TutorialsPoint", "email": "contact@tutorialspoint.com" }
This is the CSRF token created on clicking the submit button.
Das obige ist der detaillierte Inhalt vonLaravel – CSRF-Schutz. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!