Hasty Briefsbeta

双语

How to Not Get Hacked Through File Uploads

2 months ago
  • #file-uploads
  • #web-development
  • #security
  • 文件上传功能会引入多个攻击面,不仅限于代码层面,还包括图像处理库、文件系统、CDN和浏览器等环节。
  • 图像处理库(如ImageTragick、libwebp漏洞)可能发生解析器漏洞,攻击者可借此执行任意命令。
  • 防范解析器漏洞的措施包括:在受限环境(容器、无服务器函数)中处理文件,并保持依赖项更新。
  • SVG和HTML文件可能包含嵌入式脚本,若与主应用同源提供服务,会导致存储型XSS攻击。
  • 通过从独立域名(无会话状态共享)提供文件,并设置`Content-Disposition: attachment`等安全头可缓解XSS风险。
  • 文件名可能被用于路径遍历攻击(如覆盖系统文件),应使用随机标识符存储文件并验证压缩包解压路径。
  • 资源耗尽攻击(如压缩炸弹)会消耗基础设施资源,需在代理层强制执行大小限制并设置速率限制。
  • 应通过魔数字节(而非仅扩展名或MIME头)验证文件类型,并严格维护允许格式的白名单。
  • 对于用户间文件共享,应在文件可用前实施杀毒扫描。
  • 遵循涵盖验证、沙箱、安全头和依赖更新的安全检查清单来确保文件上传安全。