如何通过Laravel实现完全或部分关闭CSRF保护机制?

2026-05-22 16:144阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计369个文字,预计阅读时间需要2分钟。

如何通过Laravel实现完全或部分关闭CSRF保护机制?

使用Laravel,您会了解其内置的CSRF验证功能。当进行POST请求时,如果没有提供csrf_token,系统会报如下错误:这是Laravel 5.2版本之后的默认设置,在路由中会自动添加+web中间件。在app/Http/Kernel.php文件中,有如下内容:

用了laravel就会知道其中的csrf验证功能,如果post传值的时候,没有csrf_token就会报如下的错误:

这是因5.2之后的版本中会默认在路由里面添加 web 中间件。

在app/Http/Kernel.php文件中有如下配置:

全部关闭

到此,想必大家就知道了如何关闭这个验证了。就是将上图标注的这一行代码注释掉,这样就关闭了csrf验证,但这就全部关闭了。

部分关闭

当我们写接口的时候,会遇到这样的问题:因为通过接口是无法传csrf_token的(csrf_token是在laravel中生成的),我们只想在api请求的时候关闭csrf验证,网站的后台不关闭。

这就需要去修改app\Http\Middleware\VerifyCsrfToken.php这个文件了

文件中有个属性$except,可以设置哪些路由不用做csrf验证,如下我想要api开头的路由都不做csrf验证,只需要添加 ‘api/*' 就行了。

阅读全文

本文共计369个文字,预计阅读时间需要2分钟。

如何通过Laravel实现完全或部分关闭CSRF保护机制?

使用Laravel,您会了解其内置的CSRF验证功能。当进行POST请求时,如果没有提供csrf_token,系统会报如下错误:这是Laravel 5.2版本之后的默认设置,在路由中会自动添加+web中间件。在app/Http/Kernel.php文件中,有如下内容:

用了laravel就会知道其中的csrf验证功能,如果post传值的时候,没有csrf_token就会报如下的错误:

这是因5.2之后的版本中会默认在路由里面添加 web 中间件。

在app/Http/Kernel.php文件中有如下配置:

全部关闭

到此,想必大家就知道了如何关闭这个验证了。就是将上图标注的这一行代码注释掉,这样就关闭了csrf验证,但这就全部关闭了。

部分关闭

当我们写接口的时候,会遇到这样的问题:因为通过接口是无法传csrf_token的(csrf_token是在laravel中生成的),我们只想在api请求的时候关闭csrf验证,网站的后台不关闭。

这就需要去修改app\Http\Middleware\VerifyCsrfToken.php这个文件了

文件中有个属性$except,可以设置哪些路由不用做csrf验证,如下我想要api开头的路由都不做csrf验证,只需要添加 ‘api/*' 就行了。

阅读全文