CSRF -Angriffe sollen den Benutzer verwenden, um nicht autorisierte Vorg?nge auszuführen. Laravel verwendet die Middleware VerifyCSrftoken -Verteidigung, um die Rechtm??igkeit von Anforderungen mithilfe von Form Hidden Fields_Token zu überprüfen. 1. AJAX-Anfragen müssen XSRF-Token im Header tragen; 2. CSRF ist standardm??ig durch API -Routing aktiviert. Middleware muss manuell hinzugefügt werden. 3. Caching -Seiten k?nnen dazu führen, dass Token repariert werden. Daher sollten Sie Cache -Seiten, die Form oder dynamische Belastung von Token enthalten, vermeiden. Das Ausschalten von CSRF eignet sich für Szenarien wie staatenlose APIs und die Verwendung von OAuth/JWT -Authentifizierung, andere Sicherheitsmechanismen müssen jedoch zuverl?ssig sein.
CSRF-Angriffe (Cross-Site-Anfrage) sind eine h?ufige Sicherheitsanf?lligkeit, bei der Angreifer b?swillige Anfragen an authentifizierte Anwendungen senden, indem sie als Benutzer masturbieren. In Laravel bietet das Framework selbst einen vollst?ndigen Satz von Mechanismen, um solche Angriffe zu verhindern. Wenn Sie jedoch nicht verstehen, wie es funktioniert oder nicht ordnungsgem?? verwendet wird, kann es immer noch verborgene Gefahren hinterlassen.

Was ist ein CSRF -Angriff?
Einfach ausgedrückt, verwendet CSRF die Identit?t des Benutzers, die bereits angemeldet ist und bestimmte Operationen ohne das Wissen des Benutzers ausführt. Wenn Sie sich beispielsweise auf der Bank -Website bei Ihrem Konto anmelden und dann eine b?swillige Website besuchen, wird die Website automatisch eine übertragungsanforderung initiiert. Wenn die Bank keine Vorsichtsma?nahmen hat, kann sie f?lschlicherweise glauben, dass es sich um Ihre eigene Operation handelte.

Der Grund, warum dieser Angriff erfolgreich ist, ist, dass der Browser Ihnen automatisch Cookies auf die Zielwebsite bringt und der Server nicht bestimmen kann, ob die Anfrage von Ihnen stammt, die sie initiiert haben.
Wie verteidigt Laravel gegen CSRF?
Laravel erm?glicht standardm??ig den CSRF -Schutzmechanismus, der haupts?chlich über die Middleware VerifyCsrfToken
implementiert wird. Seine Kernlogik lautet:

- Fügen Sie jedem Formular ein verstecktes
_token
hinzu, bei dem es sich um einen vom Server generierten zuf?lligen Wert handelt und an die aktuelle Sitzung gebunden ist. - Laravel wird überprüfen, ob das Token jedes Mal legal ist, wenn ein Beitrag, ein Put, Patch oder eine Anfrage eingereicht wird.
- Wenn das Token nicht übereinstimmt oder fehlt, wird eine TokenmisMatchException -Ausnahme ausgel?st.
Darüber hinaus stellt Laravel auch die @csrf
Blade-Direktive zur Verfügung, mit der das Token-Feld bequem eingesetzt werden kann, das für die Verwendung in allen Nicht-Get-Formularen empfohlen wird.
Welche Situationen lassen sich leicht übersehen?
Obwohl Laravel viel Schutz geschafft hat, sind die folgenden Punkte in der tats?chlichen Entwicklung anf?llig für Probleme:
-
Die AJAX-Anfrage tr?gt keine Token : Standardm??ig verlangt Laravel AJAX-Anfragen, XSRF-Tokens in den Header zu bringen. Sie k?nnen es automatisch verarbeiten, indem Sie Meta -Tags zur Seite hinzufügen und Bibliotheken wie Axios verwenden:
<meta name = "csrf-token" content = "{{csrf_token ()}}">
Dann einstellen:
$ .ajaxSetup ({{ Header: { 'X-csrf-token': $ ('meta [name = "csrf-token"]'). Attr ('Inhalt') } });
API -Routing -Bypass -CSRF -überprüfung : Wenn Sie die Routing -Datei
api.php
-Datei verwenden, wird dieweb
Middleware -Gruppe standardm??ig nicht übergeben, und die CSRF -überprüfung wird nicht aktiviert. Wenn Sie m?chten, dass die API-Schnittstelle einen Sitzungsbasis-CSRF-Schutz unterstützt, müssen Sie verwandte Middleware manuell hinzufügen.Caching Pages führt zu einer Token -Fixierung : Wenn Sie die Seite mit CSRF -Token zwischenspeichern, werden mehrere Benutzer dieselbe Token erhalten, was zu Sicherheitsrisiken führen kann. Vermeiden Sie daher zwischengespeicherte Seiten, die Formulare enthalten, oder verwenden Sie dynamisch beladene Token.
Wann kann CSRF ausgeschaltet werden?
In einigen Szenarien ist der CSRF -Schutz tats?chlich nicht erforderlich, wie z. B.:
- Erstellen Sie eine staatenlose API (z. B. für Mobilger?te)
- Verwenden Sie den OAuth- oder JWT -Authentifizierungsmechanismus
- Alle Anfragen werden durch tokenbasierte Basis verifiziert
Zu diesem Zeitpunkt k?nnen Sie die Route aus der web
Middleware -Gruppe verschieben oder bestimmte Routen direkt von der VerifyCsrfToken
Middleware ausschlie?en.
Sobald Sie sich jedoch entschieden haben, CSRF auszuschalten, stellen Sie sicher, dass Sie bereits über andere sicherere Authentifizierungsmechanismen verfügen, um sie zu ersetzen.
Grunds?tzlich ist das.
Das obige ist der detaillierte Inhalt vonCSRF -Angriffe in Laravel verstehen und verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

In Laravel ist Routing der Einstiegspunkt der Anwendung, der die Antwortlogik definiert, wenn ein Client einen bestimmten URI anfordert. Die Route ordnet die URL an den entsprechenden Verarbeitungscode zu, der normalerweise HTTP -Methoden, URIs und Aktionen (Schlie?ungen oder Controller -Methoden) enth?lt. 1. Grundstruktur der Routendefinition: Binden Sie Anforderungen mit Route :: verb ('/uri', Aktion); 2. unterstützt mehrere HTTP -Verben wie Get, Post, Put usw.; 3.. Dynamische Parameter k?nnen über {param} definiert werden und Daten k?nnen übergeben werden. 4. Routen k?nnen benannt werden, um URLs oder Umleitungen zu erzeugen. 5. Verwenden Sie Gruppierungsfunktionen, um gleichm??ig Pr?fixe, Middleware und andere Freigabeinstellungen hinzuzufügen. 6. Routing -Dateien werden in Web.php unterteilt, AP nach ihrem Zweck

Inlaravel, PoliciesorganizeAuthorizationLogicformodelactions.1.PoliciesAreclasseswithmethods -?hnlich, erstellen, aktualisieren und deteletethatreturnTrueorFalseBasedonUserPermissions.2.Toregisterapolicy, maptheModeltoitSpolithe $ $ policofafafauthsivicesProvimer.

Um neue Datens?tze in der Datenbank mit eloquent zu erstellen, gibt es vier Hauptmethoden: 1. Verwenden Sie die Methode erstellen, um Datens?tze schnell zu erstellen, indem Sie das Attribut -Array wie user :: create (['name' => 'Johndoe', 'E -Mail' => 'John@example.com']) schnell erstellen; 2. Verwenden Sie die Speichernmethode, um das Modell manuell zu instanziieren und Werte zuzuweisen, um einzeln zu speichern. Dies ist für Szenarien geeignet, in denen eine bedingte Zuordnung oder zus?tzliche Logik erforderlich ist. 3.. Verwenden Sie FirstOrCreate, um Datens?tze basierend auf Suchbedingungen zu finden oder zu erstellen, um doppelte Daten zu vermeiden. V.

ThephPartisandb: SeedcommandinlaravelisusedTopulatethedatabaseWithTestOrtefaultData.1.Itexexecutestherun () methodinSeederclassSlocatedin/Datenbank/S?maschinen.2.

Artisan ist ein Befehlszeilen -Tool von Laravel, um die Entwicklungseffizienz zu verbessern. Zu den Kernfunktionen geh?ren: 1. Codestrukturen wie Controller, Modelle usw. generieren und Dateien automatisch durch Made: Controller und andere Befehle erstellen; 2. Verwalten Sie die Datenbankmigration und füllen Sie die Migration, um die Migration auszuführen, und dB: Saatgut, um Daten zu füllen. 3.. Unterstützen Sie benutzerdefinierte Befehle, z. B. Make: Befehlsbefehlsklasse für Befehlserstellung zur Implementierung der Gesch?ftslogikkapselung; 4. Bereitstellung von Debugging- und Umgebungsverwaltungsfunktionen, wie z. B. Schlüssel: generieren, um Schlüssel zu generieren, und dienen dazu, den Entwicklungsserver zu starten. Kenntnisse in der Verwendung von Handwerkern k?nnen die Effizienz der Laravel -Entwicklung erheblich verbessern.

Ja, YoucaninstalllaravelonanyoperatingsystemByFollowingTHESASTEPS: 1. InstallphpandRequiredEXTENSsionSsionSsionSlikembtring, OpenSSL, undxmlusingTools LikexampponWindows, Homebrewonmacos, ORAPTONLINUX; 2.InstallCompoSsers verwendet, mit Aninstallleronononononononononnononmandonmakcomposserm

Das Definieren einer Methode (auch als Aktion bezeichnet) in einem Controller besteht darin, der Anwendung mitzuteilen, was zu tun ist, wenn jemand eine bestimmte URL besucht. Diese Methoden verarbeiten normalerweise Anfragen, Verarbeitungsdaten und Rückgabemantworten wie HTML -Seiten oder JSON. Verst?ndnis der Grundstruktur: Die meisten Web -Frameworks (wie RubyonRails, Laravel oder SpringMVC) verwenden Controller für gruppenbezogene Operationen. Die Methoden innerhalb jedes Controllers entsprechen normalerweise einer Route, d. H. Der URL -Pfad, auf den jemand zugreifen kann. Beispielsweise k?nnen in PostController die folgenden Methoden vorhanden sein: 1.Index () - Postliste anzeigen; 2.Show () - Zeigen Sie einzelne Beitr?ge an; 3.Create () - Geben Sie es ab, neue Beitr?ge zu erstellen; 4.U

ToruntestsinLaraveleffectively,usethephpartisantestcommandwhichsimplifiesPHPUnitusage.1.Setupa.env.testingfileandconfigurephpunit.xmltouseatestdatabaselikeSQLite.2.Generatetestfilesusingphpartisanmake:test,using--unitforunittests.3.Writetestswithmeth
