EasyAdmin上传文件漏洞
默认的上传没有 mime头验证,会有被人上传脚本的风险;
/** * 上传文件 \app\admin\controller\Ajax.php */ public function upload() { $data = [ 'upload_type' => $this->request->post('upload_type'), 'file' => $this->request->file('file'), ]; $uploadConfig = sysconfig('upload'); empty($data['upload_type']) && $data['upload_type'] = $uploadConfig['upload_type']; $rule = [ 'upload_type|指定上传类型有误' => "in:{$uploadConfig['upload_allow_type']}", // 'file|文件' => "require|file|fileExt:{$uploadConfig['upload_allow_ext']}|fileSize:{$uploadConfig['upload_allow_size']}", 'file|文件' => "require|file|fileExt:{$uploadConfig['upload_allow_ext']}|fileMime:{$uploadConfig['upload_allow_mime']}|fileSize:{$uploadConfig['upload_allow_size']}", ]; $this->validate($data, $rule); try { $upload = Uploadfile::instance() ->setUploadType($data['upload_type']) ->setUploadConfig($uploadConfig) ->setFile($data['file']) ->save(); } catch (\Exception $e) { $this->error($e->getMessage()); } if ($upload['save'] == true) { $this->success($upload['msg'], ['url' => $upload['url']]); } else { $this->error($upload['msg']); } }
旧的上传只是验证文件后缀,容易被hacker 利用上传test.php.jpg 增加mime 头判断增强上传 文件的格式验证;
注意:增加后需要在配置文件中,配置相关的 mime文件头;
文章来源:刘俊涛的博客欢迎关注公众号、留言、评论,一起学习。
__________________________________________________________________________________
若有帮助到您,欢迎点击推荐,您的支持是对我坚持最好的肯定(*^_^*)
你要保守你心,胜过保守一切。
本文来自博客园,作者:刘俊涛的博客,转载请注明原文链接:https://www.cnblogs.com/lovebing/p/15161963.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
2019-08-19 通过phpMyAdmin优化mysql 数据库可能存在的问题
2017-08-19 可移动磁盘显示0kb打不开怎么办
2017-08-19 商品表
2017-08-19 快速关机命令带暂停功能
2017-08-19 租房宝典·北漂必备
2017-08-19 物联网分类图
2017-08-19 很不错标签云js插件