Heim > PHP-Framework > Laravel > Hauptteil

Laravel – CSRF-Schutz

王林
Freigeben: 2024-08-27 13:24:38
Original
635 Leute haben es durchsucht

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.

Implementierung

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>
Nach dem Login kopieren
  • 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.

Formular ohne CSRF-Token

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>
Nach dem Login kopieren

Das Ergebnis des obigen Codes ist das unten gezeigte Formular, das der Endbenutzer sehen kann −

Contact Form

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();
}
Nach dem Login kopieren

Observe that the form does not include any CSRF tokens so the sensitive information shared as input parameters are prone to various attacks.

Form with CSRF token

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>
Nach dem Login kopieren

The output achieved will return JSON with a token as given below −

{
   "token": "ghfleifxDSUYEW9WE67877CXNVFJKL",
   "name": "TutorialsPoint",
   "email": "contact@tutorialspoint.com"
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage