🗣 Wd提问: php 文件上传 禁止上传 exe
🤖 Ai回答: 在 PHP 中实现文件上传并禁止上传 `.exe` 文件,可以通过以下几种方式来实现:
✅ 方法一:检查文件扩展名(推荐)
php
<?php
if ($_FILES['file']['error'] === UPLOAD_ERR_OK) {
$filename = $_FILES['file']['name'];
$filetype = $_FILES['file']['type'];
$tmp_name = $_FILES['file']['tmp_name'];
// 获取文件扩展名
$extension = strtolower(pathinfo($filename, PATHINFO_EXTENSION));
// 禁止上传 .exe 文件
if ($extension === 'exe') {
die(不允许上传 .exe 文件!);
}
// 其他允许的文件类型(可选)
$allowed_extensions = ['jpg', 'png', 'gif', 'pdf', 'txt'];
if (!in_array($extension, $allowed_extensions)) {
die(不支持的文件类型!);
}
// 保存文件
$upload_dir = 'uploads/';
if (!is_dir($upload_dir)) {
mkdir($upload_dir, 0755, true);
}
$new_filename = uniqid() 、'.' 、$extension;
$destination = $upload_dir 、$new_filename;
if (move_uploaded_file($tmp_name, $destination)) {
echo 文件上传成功!;
} else {
echo 上传失败!;
}
}
?
✅ 方法二:结合 MIME 类型判断(更安全)
虽然 `$_FILES['file']['type']` 可被伪造,但可以作为辅助判断:
php
$mime = mime_content_type($tmp_name);
if ($mime === 'application/x-msdownload') {
die(不允许上传可执行文件!);
}
注意:`mime_content_type()` 函数在 PHP 7.4+ 已废弃,建议使用 `finfo_open()`。
使用 `finfo` 检查 MIME 类型(推荐):
php
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mimetype = finfo_file($finfo, $tmp_name);
finfo_close($finfo);
if ($mimetype === 'application/x-msdownload') {
die(不允许上传 .exe 文件!);
}
✅ 方法三:限制上传目录权限 + 安全存储
不要直接将上传文件放在网站根目录。
使用独立的上传目录,并设置权限为 `755` 或 `644`。
避免上传后可执行脚本(如 `.php`, `.exe`)被访问。
🛡️ 补充安全建议
1、不要依赖客户端验证(JavaScript),因为容易绕过。
2、始终服务器端验证文件类型、大小、内容。
3、重命名上传文件,避免恶意文件名(如 `shell.php`)。
4、过滤特殊字符:
php
$filename = preg_replace('/[^a-zA-Z0-9._-]/', '', $filename);
5、限制上传大小:
php
if ($_FILES['file']['size'] 5 * 1024 * 1024) { // 5MB
die(文件过大!);
}
✅ HTML 表单示例
html
<form method=post enctype=multipart/form-data
<input type=file name=file /
<input type=submit value=上传 /
</form
✅ 总结
| 安全措施 | 是否推荐 |
| 检查文件扩展名 | ✅ 推荐 |
| 检查 MIME 类型 | ✅ 更安全 |
| 使用 `finfo` | ✅ 最佳实践 |
| 重命名文件 | ✅ 必须 |
| 限制目录权限 | ✅ 必须 |
通过以上方法,你可以有效防止用户上传 `.exe` 文件,提升网站安全性。
📣 商家广告:





0
IP地址: 104.185.108.239
搜索次数: 0
提问时间: 2025-11-08 11:38:07
🛒 域名购买:
qj.gs
lytxw.com
214.net.cn
zansou.com.cn
0833.com.cn
chxk.cn
chuisou.com.cn
ef.gs
670.net.cn
40.gold
❓️ 热门提问:
云域名购买
vps建网站
meo域名
VPS服务器系统选择
服务器的云服务
DeFi源码开发
郑州服务器
超融合服务器 厂商
idc机房 上海
日本,云服务器
豌豆Ai站群搜索引擎系统
🌐 域名评估:
bb.jl.cn
tt.qh.cn
oo.js.cn
vtol.mobi
evtol.school
af.cq.cn
ff.ln.cn
evtol.hn.cn
7mt.net
s.tw.cn
⛏ 最新挖掘:
凯里酸汤鱼
贵阳烤脑花
都匀毛尖茶
花溪牛肉粉
贵阳烤生蚝
贵阳烤豆腐
贵阳纸包鱼
贵阳特色菜
🖌 热门作画:
🤝 关于我们:
豌豆Ai
域名
建站
站群
留痕
推广
评估
源码
开发Ai
工具
日记
价格
加盟
广告
流量
留言
联系
🗨 加入群聊:
🔗 友情链接:
Ai站群
境外域名购买
ai提问
🧰 站长工具:
Ai工具 whois查询 搜索
📢 温馨提示:本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持:本站由豌豆Ai提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。