头像上传后会被压缩、存储并通过公共域名分发,怎样阻断文件内容演变为执行入口
简答题中等782 次浏览
参考答案与解析
# 核心结论
安全上传不是检查文件扩展名后保存,而是建立从接收、识别、解码、重编码、存储到分发的完整不可信数据边界。对于头像这类业务,应尽量把用户输入转换成服务端生成的安全派生物:限制体积和像素,使用受维护的解码器真正解析图片,重新编码为允许的格式,丢弃原文件、元数据和文件名,再从与主站会话隔离的独立源分发。这样可以显著减少伪造类型、脚本内容、解析器漏洞和内容嗅探造成的风险。
客户端的 accept 属性只改善选择体验,不能形成安全控制;请求中的扩展名和 Content-Type 都由调用者提供,也不能单独信任。服务端应先限制请求总大小、文件数量和处理时间,再检查魔数,并通过实际解码确认结构。仅比较文件头仍可能漏掉
