Heim > Artikel > PHP-Framework > Laravel CSRF entfernen
Laravel ist ein beliebtes PHP-Framework, das bei professionellen Entwicklern und Anfängern gleichermaßen beliebt ist. Das Laravel-Framework implementiert CSRF-Schutz, um Cross-Site-Request-Forgery-Angriffe zu verhindern. In manchen Fällen ist es jedoch manchmal notwendig, den CSRF-Schutz zu entfernen. Dieser Artikel zeigt Ihnen, wie Sie den CSRF-Schutz in Laravel entfernen.
Die Implementierung des CSRF-Schutzes in Laravel
Fügen Sie die Anweisung csrf_field im HTML-Formular hinzu. Diese Anweisung generiert automatisch das CSRF-Token und fügt es dem ausgeblendeten Feld des Formulars hinzu.
<form> @csrf <input type="text" name="name"> <input type="submit" value="Submit"> </form>
2.2. CSRF-Token überprüfen
Im Backend überprüft Laravel, ob das angeforderte CSRF-Token legal ist. Wenn es unzulässig ist, wird eine Fehlermeldung zurückgegeben. In Laravel 5.6 und späteren Versionen wird standardmäßig CSRF-Schutz-Middleware hinzugefügt und alle Post-Anfragen werden einer CSRF-Überprüfung unterzogen. Wenn Ihre Anfrage das CSRF-Token nicht korrekt trägt, erhalten Sie die folgende Fehlermeldung:
TokenMismatchException in VerifyCsrfToken.php line 68:
2.3 Cross-Site-Scripting-Angriffsschutz
Um Cross-Site-Scripting-Angriffe zu verhindern. Bei Site-Scripting-Angriffen sollten Sie dem Prinzip der „Escape-Ausgabe“ folgen und die vom Benutzer bereitgestellten Daten nicht direkt ausgeben, sondern diese vor der Ausgabe verarbeiten. Verwenden Sie beispielsweise die Funktionen htmlentities oder htmlspecialchars, um HTML-Sonderzeichen zu maskieren.
Oben erfahren Sie, wie Sie den CSRF-Schutz in Laravel implementieren. Im Folgenden erklären wir Ihnen, wie Sie diesen Schutz entfernen.
So entfernen Sie den CSRF-Schutz in LaravelStandardmäßig werden alle Laravel-Post-Anfragen einer CSRF-Überprüfung unterzogen. Wenn Sie diese Überprüfung entfernen möchten, können Sie die CSRF-Schutz-Middleware aus der Middleware entfernen. Die spezifische Methode lautet wie folgt:
Öffnen Sie die Datei app/Http/Kernel.php, suchen Sie die Web-Middleware-Gruppe im Array $middlewareGroups und löschen Sie die Middleware ['IlluminateFoundationHttpMiddlewareVerifyCsrfToken'] aus dem Array. .
protected $middlewareGroups = [ 'web' => [ AppHttpMiddlewareEncryptCookies::class, // IlluminateSessionMiddlewareAuthenticateSession::class, // IlluminateRoutingMiddlewareSubstituteBindings::class, // IlluminateFoundationHttpMiddlewareVerifyCsrfToken::class, ], 'api' => [ 'throttle:60,1', 'auth:api', ], ];
Zu diesem Zeitpunkt werden alle Post-Anfragen keiner CSRF-Schutzüberprüfung unterzogen. Obwohl der CSRF-Schutz entfernt werden kann, stellt dies auch ein gewisses Sicherheitsrisiko dar. Daher wird empfohlen, es nur in strengen Testumgebungen zu aktivieren.
3.2. CSRF-Schutz manuell ignorieren
Wenn Sie die CSRF-Schutz-Middleware global deaktivieren, können Sie die CSRF-Schutzüberprüfung in einer bestimmten Route oder einem bestimmten Controller manuell ignorieren. Die spezifische Methode lautet wie folgt:
Verwenden Sie in der Routen- oder Controller-Methode, die freigegeben werden muss, die Methode withoutMiddleware:
Route::post('route', function () { // })->withoutMiddleware([IlluminateFoundationHttpMiddlewareVerifyCsrfToken::class]);
Diese Methode kann in einigen Sonderfällen verwendet werden Dies ist jedoch nicht der Fall. Es wird empfohlen, diese Methode für alle Routen zu verwenden.
Zusammenfassend lässt sich sagen, dass die Implementierung des CSRF-Schutzes in Laravel eine gute Sicherheitsmaßnahme ist. Es wird nicht empfohlen, den CSRF-Schutz zu entfernen, wenn er nicht erforderlich ist. Bei Bedarf können Sie den CSRF-Schutz mit den oben genannten Methoden entfernen. Bitte verwenden Sie es in der tatsächlichen Projektentwicklung natürlich entsprechend der tatsächlichen Situation mit Vorsicht.
Das obige ist der detaillierte Inhalt vonLaravel CSRF entfernen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!