下载接口为何不能直接信任用户提交的文件名与内容类型
简答题中等650 次浏览
参考答案与解析
# 核心结论
下载接口不能直接信任用户提交的文件名、存储路径和内容类型,因为这些字段都可能被构造为路径穿越、响应头注入、视觉欺骗或主动内容执行的载体。安全下载不仅取决于上传阶段是否限制扩展名,还取决于服务端如何定位对象、重新识别文件格式、生成响应头,以及浏览器最终如何解释内容。服务端应使用内部对象标识定位文件,独立执行读取授权,生成经过净化和正确编码的下载名称,并根据业务目的选择强制下载或隔离预览。
# 底层机制
如果服务端把请求中的文件名直接拼接到磁盘路径,攻击者可能使用路径分隔符和上级目录标记访问预期目录之外的文件。即使文件位于对象存储中,随机对象名也只能降低猜测概率,不能替代主体、租户和对象级授权。
文件名进入 `
