文件上传

349 字

文件上传

文件上传的危险点在于:用户把内容交给服务器保存,而服务器可能又把它当成网页、脚本、图片、压缩包或业务数据处理。

上传流程看什么

环节 关注点
前端限制 是否只是浏览器限制后缀和大小
服务端校验 是否检查类型、内容、尺寸、结构
存储位置 是否在可执行目录或 Web 根目录
文件命名 是否保留原始文件名,是否可覆盖
访问方式 是否能直接访问、下载、预览
后续处理 是否会解压、解析、转码、入库

常见风险

上传脚本文件可能导致代码执行;上传特殊图片、文档或压缩包可能触发解析器漏洞;保留原文件名可能造成 XSS、路径问题或覆盖文件;公开可访问的附件可能泄露隐私数据。

防护要点

服务端按业务白名单校验文件类型,使用随机文件名,存储到不可执行目录。图片等文件重新编码后再提供访问,附件下载统一走鉴权接口,压缩包解压要限制层级、数量、大小和路径。

Licensed under CC BY-NC-SA 4.0