为何post上传文件不需要csrf_token也可上传成功(没有加csrf白名单)
Laravel Framework 8.11.2
1. 运行环境
lnmp
1). 当前使用的 Laravel 版本?
Laravel Framework 8.11.2
2). 当前使用的 php/php-fpm 版本?
PHP 版本:7.3.26
3). 当前系统
CentOS
4). 业务环境
开发环境,单服务器架构
2. 问题描述?
在编辑器内post上传文件不需要提交csrf也可上传成功。
详细描述:在web表单页面使用第三方包packagist.org/packages/overtrue/la...的UE编辑器时,注释掉了csrf_token代码,F12观察network的http请求,确实没有带上csrf_token,但是确上传成功了
没有加该路由的csrf白名单
3. 您期望得到的结果?
我期望在注释掉csrf时得到419响应
4. 您实际得到的结果?
http返回200,调试发现这个第三方包里注册的post路由没有经过csrf中间件,这是为什么?是laravel版本的原因吗?
没有添加中间件是为了兼容吧。要加中间件,在app的路由里重新定义一个相同的带中间件的路由,覆盖掉旧的
cookie 里有
Uedit 文件上传路由默认没有使用 csrf 中间件
包里面注册路由的时候没有加中间件:源码
可以通过修改配置文件,添加相应的中间件:源码,在项目中定义一个
ueditor.php
配置文件,可以覆盖默认的配置