laravel csrf验证总结

admin3年前PHP教程112

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

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

PHP使用QR Code生成二维码实例

使用PHP QR Code生成二维码HP QR Code是一个PHP二维码生成类库,利用它可以轻松生成二维码,官网提供了下载和多个演示demo,查看地址:phpqrcode.sourceforge/下...

Laravel中10个有用的用法小结

本文给大家介绍了Laravel 中一些常用的用法1. 在 find 方法中指定属性User::find(1, ['name', 'email']);User::find...

高防服务器的流量清洗是什么?国内电信100G高防服务器DOSS高防清洗?

越来越多大型行业网站由于一些的原因会经常被ddos流量攻击,为了确保业务服务和网站的正常执行,所以大家需要租赁专门防护ddos流量攻击的高防服务器。在租赁高防服务器的时候,大家会经常看见一些相关的防护...

适合TikTok直播的跨境直播网络专线在这里

适合TikTok直播的跨境直播网络专线在这里!TikTok已经成为全球非常流行的短视频应用。除了facebook\twitter等国外本地应用,TikTok已成功成为出海的标杆产品之一。是年轻一代冲浪...

php对数字进行万、亿单位的转化

php对数字进行万。亿的转化/** * 格式化数字 */public function float_number($number){    ...

PHP如何初始化PDO及原始SQL语句操作

目录PDO 实例dns 参数PDO 对象属性查询语句普通查询及遍历查询结果集(数组、对象)查询结果集(类)查询结果集(指定字段)增、删、改操作增加操作修改操作删除操作总结PDO 实例首先来看看一个 P...