上传文件防木马函数

news/2025/2/12 19:36:13/

项目环境:TP6、TP5

问题:解决旧项目中上传上来的文件校验不严格。导致会有木马文件入侵的情况发生。除了上篇博文中提及的限制上传文件存储的目录不可执行php文件外。仍需在入口处严格检验上传文件的类型,排除php类可执行文件上传。

解决

php">/*** 判断上传文件是否合法   如:php文件不可上传** @author * @param $file* @return  /bool*/
function checkUploadFile($file, $only_php_check=true, $allowed_types=[], $allowed_extensions=[]) {if (!isset($file)) {return false;}$check_php = true;//允许的文件类型(mimeType): application/vnd.ms-excel//不允许的类型 text/x-php$mime_type = strtolower($file->getMime());//text/x-php$extension = strtolower($file->getOriginalExtension());//phpif($mime_type == 'text/x-php' || $extension == 'php'){$check_php = false;//上传文件为php文件}if($only_php_check){//仅判断是否为php文件的话 此时就返回结果。终止后续判断了。return $check_php;}// 允许的MIME类型数组和扩展名数组if(!$allowed_types){$allowed_types = ['image/jpeg', 'image/png', 'image/gif', 'application/vnd.ms-excel'];}if(!$allowed_extensions){$allowed_extensions = ['jpg', 'jpeg', 'png', 'gif', 'xls'];}// 检查MIME类型和扩展名是否都在允许的列表中if (in_array($mime_type, $allowed_types) && in_array($extension, $allowed_extensions)) {return true;} else {return false;}}


http://www.ppmy.cn/news/1570725.html

相关文章

【漫话机器学习系列】084.偏差和方差的权衡(Bias-Variance Tradeoff)

偏差和方差的权衡(Bias-Variance Tradeoff) 1. 引言 在机器学习模型的训练过程中,我们常常面临一个重要的挑战:如何平衡 偏差(Bias) 和 方差(Variance),以提升模型的泛…

【杂谈】-文明的量子跃迁:AI时代人类物种的自我重构

文章目录 文明的量子跃迁:AI时代人类物种的自我重构一、文明基因的双螺旋进化二、意识矩阵的拓扑重构三、伦理穹顶下的共生协议 文明的量子跃迁:AI时代人类物种的自我重构 在撒哈拉沙漠的岩壁上,史前人类用赭石颜料绘制出羚羊与猎人的身影&a…

接入 deepseek 实现AI智能问诊

1. 准备工作 注册 DeepSeek 账号 前往 DeepSeek 官网 注册账号并获取 API Key。 创建 UniApp 项目 使用 HBuilderX 创建一个新的 UniApp 项目(选择 Vue3 或 Vue2 模板)。 安装依赖 如果需要在 UniApp 中使用 HTTP 请求,推荐使用 uni.requ…

iOS文字滚动:使用CATextLayer实现的跑马灯(附源码)

引言 在 iOS 开发中,跑马灯效果(Marquee Effect)是一种常见的文本滚动效果,广泛应用于广告展示、动态消息栏、通知推送等场景。通过跑马灯效果,我们能够以流畅的方式展示超出屏幕范围的文本,提升用户体验。…

Golang Gin框架mqtt消费者

这里主要是展示一个非常简单的Gin框架下的mqtt消费者,在保持启动后持续轮训消费。简单实用是主旨。 viper全局调用yaml文件中的数据 redisClient 缓存客户端 doJYService 业务逻辑代码 package mainimport ("fmt""github.com/gin-gonic/gin"&…

运用Deek Seeker协助数据分析

我的数据源有两张表,一个是每日销售表(字段有日期、产品名称、实际销量),一个是每月目标表(字段有年度月份、产品名称、目标销量);我的需求是,按月、按年来统计每个产品的目标完成情况请问用PowerBl进行分析,应该如何建立数据模型…

分巧克力

儿童节那天有 K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有 N块巧克力,其中第i块是HixWi的方格组成的长方形。为了公平起见,小明需要从这 N块巧克力中切出 K块巧克力分给小朋友们。切出的巧克力需要满足 1.形状是正方形&…

【C语言】指针详细解读3

1. 数组名的理解 我们使用指针一般访问数组内容时,我们可能会这样写: int arr[10] {1,2,3,4,5,6,7,8,9,10}; int *p &arr[0]; 这⾥我们使⽤ &arr[0] 的⽅式拿到了数组第⼀个元素的地址,但是其实数组名本来就是地址,⽽…