• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    laravel csrf验证总结

    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验证内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • laravel下trait的使用代码实例详解
    • 清除laravel缓存命令代码实例
    • 在swoole中制作一款仿制laravel的框架的实例代码
    • laravel与thinkphp之间的区别与优缺点
    • laravel日志优化实例讲解
    上一篇:PHP中的变量覆盖漏洞深入解析
    下一篇:清除laravel缓存命令代码实例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    laravel csrf验证总结 laravel,csrf,验证,总结,laravel,