В Laravel защита от CSRF (межсайтовая подделка запроса) является встроенной функцией безопасности. CSRF-токен генерируется автоматически для каждой формы, и каждая отправка формы проверяется на наличие действительного токена.
Однако, есть случаи, когда требуется отключить CSRF-защиту для определенных страниц, например, для создания API-эндпоинтов или открытых форм.
Самый простой способ отключить CSRF-защиту для конкретной страницы - это исключить ее из промежуточного слоя CSRF, используя маршрут или middleware.
Сначала добавьте роут для нужной страницы или группы страниц:
Route::get('/some-page', 'SomeController@someMethod')->withoutMiddleware(['csrf']);
Или вы можете добавить middleware в группу маршрутов:
Route::middleware(['web', 'csrf'])->group(function () { // Здесь находятся маршруты с включенной CSRF-защитой }); Route::middleware(['web'])->group(function () { // Здесь находятся маршруты без CSRF-защиты });
Если вы хотите исключить CSRF-защиту для всего приложения, вы можете удалить CSRF-мидлвар из группы маршрутов web
в файле app/Http/Kernel.php
:
protected $middlewareGroups = [ 'web' => [ // Удалите или закомментируйте строку ниже AppHttpMiddlewareVerifyCsrfToken::class, //... ], //... ];
Однако, не рекомендуется отключать CSRF-защиту для всего приложения, так как это может привести к уязвимостям безопасности.
Отключение CSRF-защиты следует применять только в случаях, когда это явно требуется, и при этом необходимо убедиться, что на странице или маршруте отсутствуют действия, которые могут угрожать безопасности пользователей.