📜  laravel 发布请求页面 csrf 禁用 - PHP (1)

📅  最后修改于: 2023-12-03 15:17:14.217000             🧑  作者: Mango

Laravel 发布请求页面 csrf 禁用

在 Laravel 中,所有的 POST、PUT、DELETE 等请求都需要一个 CSRF 令牌来增加安全性。如果您的页面中没有正确地设置 CSRF 令牌,将会抛出TokenMismatchException异常。但是,如果您需要在某些情况下禁用CSRF保护,该怎么办呢?下面是在 Laravel 项目中禁用 CSRF 保护的方法:

禁用 CSRF 保护

要禁用 CSRF 保护,您可以简单地将路由中间件中的 "web" 中间件移除。在 web.php 中添加一个不使用 CSRF 保护的路由,如下所示:

Route::post('/path', 'Controller@method')->withoutMiddleware(['web', 'csrf']);

您可以在需要保护 CSRF 的路由中保留 "web" 中间件,并在不需要保护 CSRF 的路由中删除它。

禁用 CSRF 保护的全局配置

如果您需要在整个应用程序中禁用 CSRF 保护,可以通过修改 app/Http/Kernel.php 文件中的 $middlewareGroups 属性来实现。

只需将 'web' 中间件组中的' \Illuminate\Foundation\Http\Middleware\VerifyCsrfToken::class' 移除即可。具体代码如下:

protected $middlewareGroups = [
    'web' => [
        ...
        // 注释掉或删除以下组件即可
        // \Illuminate\Foundation\Http\Middleware\VerifyCsrfToken::class,
        ...
    ],
    ...
];
注意事项

禁用 CSRF 保护是一种非常危险的举动,因此只有在特定情况下才应这样做,例如在通过 API 呼叫应用程序的情况下。如果您不确定是否禁用 CSRF 保护,则建议仍然启用。