Maison  >  Article  >  développement back-end  >  Quand et comment gérer le code d'état 419 dans les requêtes Laravel POST et PUT ?

Quand et comment gérer le code d'état 419 dans les requêtes Laravel POST et PUT ?

DDD
DDDoriginal
2024-10-18 20:33:30906parcourir

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

Comprendre le code d'état 419 dans l'API Laravel pour les méthodes POST et PUT

Lors du développement d'API RESTful avec Laravel, il est courant de rencontrer un 419 code d'état lors des requêtes POST ou PUT. Ce code d'état indique que la demande a été rejetée en raison de l'absence d'un jeton CSRF valide.

Cause première

Par défaut, Laravel utilise des jetons CSRF pour se protéger contre les croisements -Attaques de contrefaçon de demande de site (CSRF). Lors de l'utilisation du groupe de middleware Web pour les routes API, la vérification CSRF est activée et toute demande modifiant l'état de l'application (par exemple, POST ou PUT) nécessite un jeton valide.

Pour les applications non Web -API basées

Si vous développez des API qui ne sont pas destinées à être utilisées à partir d'un navigateur Web (par exemple, des applications mobiles ou des outils de ligne de commande), il n'est pas nécessaire d'avoir une protection CSRF car ces environnements sont généralement non sensible aux attaques CSRF.

Pour désactiver la vérification CSRF pour les API non basées sur le Web, vous pouvez déplacer les routes d'API en dehors du groupe de middleware Web dans le fichier routes/web.php ou utiliser le fichier api.php fichier à la place. Dans api.php, la validation CSRF est automatiquement désactivée.

Pour les API Web

Si vous développez des API qui seront accessibles à partir d'un navigateur Web, vous vous souhaiterez peut-être éviter d'exclure l'intégralité du groupe de routes API de la vérification CSRF. Au lieu de cela, vous pouvez exclure de manière sélective des routes spécifiques dont vous savez qu'elles ne seront pas soumises aux attaques CSRF.

Pour ce faire, ajoutez ces routes au tableau $sauf dans le middleware VerifyCsrfToken :

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

Cette approche vous permet de maintenir la protection CSRF pour la plupart de vos routes API tout en exemptant celles spécifiques qui sont peu susceptibles d'être ciblées par des attaques CSRF.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn