Как отключить проверку csrf laravel

В статье рассматривается процесс отключения проверки CSRF в Laravel посредством использования исключений и исключения маршрутов из проверки CSRF. На примере рассматривается использование исключений и исключения маршрутов для отключения проверки CSRF.

Отключение проверки CSRF в Laravel

Cross-site Request Forgery (CSRF) - это атака, которая происходит при помощи использования поддельных запросов для выполнения действий от имени другого пользователя. Противодействие CSRF в Laravel предоставляется в виде интегрированных механизмов защиты. Они позволяют автоматически проверять все HTTP-запросы, поступающие на сервер, и предотвращать подобные атаки. Хотя проверка CSRF в Laravel предоставляет нам дополнительный уровень защиты, иногда мы можем иметь необходимость отключить ее.

В следующем фрагменте кода мы можем увидеть, как отключить проверку CSRF для указанного роута:

Route::post('/login', [
    'uses' => 'AuthController@login',
    'as' => 'auth.login',
    'middleware' => 'disableCsrf',
]);

// Внутри класса AppHttpKernel.php

protected $routeMiddleware = [
    ...
    'disableCsrf' => AppHttpMiddlewareDisableCsrf::class,
];

// Внутри класса AppHttpMiddlewareDisableCsrf.php

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

В этом примере мы создаем пользовательский посредник disableCsrf, который мы присваиваем роуту /login. В этом посреднике нет никаких действий, так что он просто пропускает запрос, не проверяя проверку CSRF. Таким образом, мы можем легко отключить проверку csrf для любого роута, просто добавив посредник disableCsrf к нему.

Ответы (0)