Как-то можно убрать csrf в laravel для определенных страниц?

В 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-защиты следует применять только в случаях, когда это явно требуется, и при этом необходимо убедиться, что на странице или маршруте отсутствуют действия, которые могут угрожать безопасности пользователей.