laravel csrf验证总结

 更新时间:2021年03月18日 15:19:02   作者:小阿巳  
这篇文章主要介绍了laravel csrf验证总结,csrf是laravel表单提交和ajax请求为了安全设置的机制,有感兴趣的同学可以深入学习下

laravel csrf验证总结

前言问题:
laravel 在web路由下无论是表单提交啊 还是ajax请求啊 只要是请求方式不满足 ['HEAD', 'GET', 'OPTIONS']
就会报419错误,原因是其自带开启csrf验证,防止csrf攻击
感兴趣的可以看看这部分源码:Illuminate\Foundation\Http\Middleware\VerifyCsrfToken

解决方式:

一.屏蔽csrf验证

部分屏蔽
App\Http\Middleware\VerifyCsrfToken.php
protected $except = [
//这里添加屏蔽的路由地址
];

全部屏蔽
App\Http\Kernel.php
注释 \App\Http\Middleware\VerifyCsrfToken::class,

二.加入csrf验证参数

form提交

<input type="hidden" name="_token" value="{{csrf_token()}}">

ajax提交

<meta name="_token" content="{{csrf_token()}}">
$.ajax({
   url: "xxxx",
   type: "POST",
   data: data,
   headers: {
     'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
     },
   success: function (data) {}
  });

注意!!!

因为呢 laravel的token是存储在session里的,所以呢,我遇到了一个大坑,代码传到linux里后 csrf总报错???
最后debug发现 因为提交的token值与session里的不一致
(md 因为 storag2目录么权限 —>storage/framework/sessions 是存储session的目录)
开启777就ok了

最后总结一下排错顺序

1.检查表单有没有 csrf_token
2.linux 下storage有没有读写权限
3.检查session存储位置时候更换过(换过里面还是否有_token)
4.清除浏览器缓存,laravel缓存
最后没招 自己源码debug吧

到此这篇关于laravel csrf验证总结的文章就介绍到这了,更多相关laravel csrf验证内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Yii基于CActiveForm的Ajax数据验证用法示例

    Yii基于CActiveForm的Ajax数据验证用法示例

    这篇文章主要介绍了Yii基于CActiveForm的Ajax数据验证用法,结合实例形式分析了Yii视图自定义Form表单的ajax提交及控制器处理实现方法,需要的朋友可以参考下
    2016-07-07
  • Yii2第三方类库插件Imagine的安装和使用

    Yii2第三方类库插件Imagine的安装和使用

    本篇文章主要介绍了Yii2第三方类库插件Imagine的安装和使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • Ajax和PHP正则表达式验证表单及验证码

    Ajax和PHP正则表达式验证表单及验证码

    这篇文章主要介绍了Ajax和PHP正则表达式验证表单及验证码的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • PHP中使用GD库绘制折线图 折线统计图的绘制方法

    PHP中使用GD库绘制折线图 折线统计图的绘制方法

    本文通过代码给大家介绍php中使用GD库绘制折线图,涉及到php中GD库的一些简单使用,本文介绍的非常详细,感兴趣的朋友一起学习吧
    2015-11-11
  • 浅谈使用 PHP 进行手机 APP 开发(API 接口开发)

    浅谈使用 PHP 进行手机 APP 开发(API 接口开发)

    做过 API 的人应该了解,其实开发 API 比开发 WEB 更简洁,但可能逻辑更复杂,因为 API 其实就是数据输出,不用呈现页面,所以也就不存在 MVC(API 只有 M 和 C),那么我们来探讨下,如何使用php进行手机API接口开发
    2014-08-08
  • php数组合并的二种方法

    php数组合并的二种方法

    这篇文章主要介绍了php数组合并的二种方法,同时讲了用加号和用array_merge合并数组的区别,需要的朋友可以参考下
    2014-03-03
  • php操纵mysqli数据库的实现方法

    php操纵mysqli数据库的实现方法

    下面小编就为大家带来一篇php操纵mysqli数据库的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • php不用正则验证真假身份证

    php不用正则验证真假身份证

    以前我要验证身份证我们多半会使用正则判断用户输入是不是15位或18位的全数字,然后来判断身份证是否合法了,这种方法只是最基础的,下面提供的这个身份证验证,可以识别真假身份证哦
    2013-11-11
  • Thinkphp 框架扩展之Widget扩展实现方法分析

    Thinkphp 框架扩展之Widget扩展实现方法分析

    这篇文章主要介绍了Thinkphp 框架扩展之Widget扩展实现方法,结合实例形式分析了Thinkphp 框架Widget扩展概念、原理、实现方法及操作注意事项,需要的朋友可以参考下
    2020-04-04
  • Yii实现自动加载类地图的方法

    Yii实现自动加载类地图的方法

    这篇文章主要介绍了Yii实现自动加载类地图的方法,涉及Yii加载类的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04

最新评论