文件上传漏洞的防护设计
网络安全
2026-11-10 16:46
8
从类型校验、存储隔离、权限控制三处设计上传,避免一个上传点毁掉整站。下面按“先判断、再动手、最后验证”的顺序展开,每一步都给出可核对的检查点。
涉及 文件上传漏洞、上传防护、文件校验 的关键动作都写成了具体命令或配置项,可以照着走,也可以当检查表用。
类型校验
白名单按扩展名与 MIME 双校验,同时校验文件头,不能只信前端。
重命名与路径
服务端生成随机文件名,禁止用户控制路径,杜绝 ../ 穿越。
存储隔离
上传目录独立域名或独立存储,禁止执行脚本,nginx 里对该目录直接 return 403 给 php。
图片处理
二次渲染能破坏藏在图片里的 payload,顺带压缩。
审计
记录上传者、大小、哈希,配合定期扫描异常文件。
速查表
| 环节 | 关键动作 |
|---|---|
| 类型校验 | 白名单按扩展名与 MIME 双校验,同时校验文件头,不能只信前端 |
| 重命名与路径 | 服务端生成随机文件名,禁止用户控制路径,杜绝 ../ 穿越 |
| 存储隔离 | 上传目录独立域名或独立存储,禁止执行脚本,nginx 里对该目录直接 return 403 给 php |
| 图片处理 | 二次渲染能破坏藏在图片里的 payload,顺带压缩 |
常见问题
Q:按文中写法改完,怎么确认真的生效?
不要只看配置文件,用对应的验证命令或从外部视角复测一次;改完先小流量观察一段,再全量推进,出问题能马上回退。
Q:按文中的步骤做完,还需要注意什么?
把处理过程和最终生效的参数记下来。同类问题再出现时直接对照记录,比重查一遍快得多。
Q:业务规模小,也要按这套标准来吗?
不需要一次到位。先把影响最大的两项做到位,剩余的随着业务增长逐步补齐,比一开始就追求完美更容易落地。
小结
回到这篇的 5 个环节:类型校验、重命名与路径、存储隔离、图片处理、审计。把这几个动作写进检查表,下次遇到同类问题按顺序过一遍,比凭经验跳步骤稳。
相关阅读:API接口安全:鉴权、签名与重放防护、勒索病毒应急:能不能付赎金、挖矿木马排查与清除。
延伸阅读:越权漏洞自查:水平与垂直越权、WebShell查杀:特征、工具与清理顺序、API接口安全:鉴权、签名与重放防护。