Heim  >  Artikel  >  Backend-Entwicklung  >  Wann und wie wird der 419-Statuscode in Laravel POST- und PUT-Anfragen behandelt?

Wann und wie wird der 419-Statuscode in Laravel POST- und PUT-Anfragen behandelt?

DDD
DDDOriginal
2024-10-18 20:33:30905Durchsuche

When and How to Handle the 419 Status Code in Laravel POST and PUT Requests?

Den 419-Statuscode in der Laravel-API für POST- und PUT-Methoden verstehen

Bei der Entwicklung von RESTful-APIs mit Laravel stößt man häufig auf einen 419 Statuscode bei POST- oder PUT-Anfragen. Dieser Statuscode zeigt an, dass die Anfrage aufgrund des Fehlens eines gültigen CSRF-Tokens abgelehnt wurde.

Ursache

Standardmäßig verwendet Laravel CSRF-Tokens zum Schutz vor Cross -Site Request Forgery (CSRF)-Angriffe. Bei Verwendung der Web-Middleware-Gruppe für API-Routen ist die CSRF-Überprüfung aktiviert und jede Anfrage, die den Status der Anwendung ändert (z. B. POST oder PUT), erfordert ein gültiges Token.

Für Nicht-Web -basierte APIs

Wenn Sie APIs entwickeln, die nicht für die Verwendung über einen Webbrowser vorgesehen sind (z. B. mobile Apps oder Befehlszeilentools), ist ein CSRF-Schutz nicht erforderlich, da dies in diesen Umgebungen der Fall ist normalerweise nicht anfällig für CSRF-Angriffe.

Um die CSRF-Überprüfung für nicht webbasierte APIs zu deaktivieren, können Sie die API-Routen außerhalb der Web-Middleware-Gruppe in der Datei „routes/web.php“ verschieben oder die Datei „api.php“ verwenden Datei stattdessen. In api.php ist die CSRF-Validierung automatisch deaktiviert.

Für webbasierte APIs

Wenn Sie APIs entwickeln, auf die über einen Webbrowser zugegriffen wird, müssen Sie Möglicherweise möchten Sie vermeiden, die gesamte API-Routengruppe von der CSRF-Überprüfung auszuschließen. Stattdessen können Sie gezielt bestimmte Routen ausschließen, von denen Sie wissen, dass sie keinen CSRF-Angriffen ausgesetzt sind.

Fügen Sie dazu diese Routen zum $exclusive-Array in der VerifyCsrfToken-Middleware hinzu:

<code class="php">namespace App\Http\Middleware;

use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;

class VerifyCsrfToken extends BaseVerifier
{
    protected $except = [
        '/api/stripe/*',
        '/api/non-susceptible-route',
    ];
}</code>

Dieser Ansatz ermöglicht es Ihnen, den CSRF-Schutz für die meisten Ihrer API-Routen aufrechtzuerhalten und gleichzeitig bestimmte Routen auszunehmen, die wahrscheinlich kein Ziel von CSRF-Angriffen sind.

Das obige ist der detaillierte Inhalt vonWann und wie wird der 419-Statuscode in Laravel POST- und PUT-Anfragen behandelt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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