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.
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é.
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) .
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.