Position actuelle: Accueil> Derniers articles> Laravel 5.5 Trois façons de désactiver la protection des jetons CSRF

Laravel 5.5 Trois façons de désactiver la protection des jetons CSRF

gitbox 2025-07-07

Trois façons de désactiver la protection des jetons CSRF

Désactiver la protection du CSRF en fonction du jeton

Avant Laravel 5.5, Laravel a activé la protection CSRF basée sur les jetons par défaut pour garantir la sécurité de l'application. Cependant, dans certains scénarios de développement, cette protection peut devoir être désactivée pour éviter une complexité supplémentaire. Vous pouvez le faire en modifiant le fichier kernel.php:

Tout d'abord, ouvrez le fichier App \ http \ kernel.php , recherchez le tableau de configuration Web dans la propriété $ middlewareGroups et ajoutez-y le code suivant:

 
protected $middlewareGroups = [
    'web' => [
        // ...
        App\Http\Middleware\VerifyCsrfToken::class => function ($request, $next) {
            return $next($request);
        },
    ],
];

En définissant le middleware VerifyCSrfToken :: Class comme une fonction anonyme, vous éteignez avec succès la protection CSRF basée sur le jeton.

Désactiver la protection du CSRF au niveau de routage

Si vous souhaitez uniquement désactiver la protection du CSRF sur certaines itinéraires, Laravel fournit la méthode CSRF_Exempt , qui vous permet de désactiver la protection CSRF séparément dans la définition de votre itinéraire. Par exemple:

 
Route::post('/api/posts', [
    'middleware' => 'auth.basic',
    'uses' => 'PostController@store',
])->csrf_exempt();

En utilisant cette méthode, vous pouvez désactiver la protection du CSRF sur l'itinéraire spécifié.

Désactiver les composants de protection CSRF

Enfin, vous pouvez également fermer l'ensemble du composant CSRF Guard en modifiant le fichier VerifyCSrftoken.php . Le fichier est situé dans le répertoire App \ http \ middleware . Ouvrez le fichier et commentez le code dans sa méthode de poignée :

 
class VerifyCsrfToken extends Middleware
{
    protected $except = [];

    public function handle($request, Closure $next)
    {
        // return parent::handle($request, $next);
        return $next($request);
    }
}

Vous pouvez fermer l'intégralité du composant CSRF Guard en commentant Parent :: Handle ($ demande, $ suivant) .

Résumer

Bien que la désactivation de la protection du CSRF puisse résoudre certains problèmes de développement, il peut également présenter des risques de sécurité. Des précautions doivent être prises lors de la fermeture pour vous assurer que vous avez pris d'autres mesures de sécurité ou simplement la fermer dans l'environnement de développement. Si nécessaire, sauvegardez le code ou choisissez une autre solution plus sûre.