返回
热门搜索

laravel csrf验证总结

IT博客 数学 动态规划 点击量 514

基本信息 收藏 - 举报 - 海报

详细介绍

laravel csrf验证总结

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

解决方式:

一.屏蔽csrf验证

部分屏蔽
AppHttpMiddlewareVerifyCsrfToken.php
protected $except = [
//这里添加屏蔽的路由地址
];

全部屏蔽
AppHttpKernel.php
注释 AppHttpMiddlewareVerifyCsrfToken::class,

二.加入csrf验证参数

form提交

ajax提交


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

没有更多内容。

用户评价(0)

好评度100%
  • 还没有人评论此条信息!
+ 加载更多

联系方式

提示:联系我时,请说明在巅云php学苑看到的,谢谢!
  • 联系人:
  • 地  区:
  • 电  话: 共发布信息(2004)条 所在地:未填写
看了又看
加载中
首页 首页 收藏 收藏

电话联系