一步一步学习 Web 安全 4.1 文件上传简介

原理

文件上传非常常见,上传图片就是一种,比如百度识图、头像上传。
流程一般如下:

  1. 前端提交文件
  2. 浏览器生成 POST MultiPart 报文发送到服务器
  3. 服务器中间件接受到报文,解析后给后端
  4. 后端将内容保存,文件名为前端提交的文件名或以一定规则生成的文件名

可见文件上传需要和后端交互,很明显就是我们可以操作的一个点:当文件上传点未对上传的文件进行严格的验证和过滤,上传的目标目录也没有限制执行权限,导致上传的动态文件可以正常执行并访问,即造成了文件上传漏洞。

上传检测流程

  1. 前端提交:JS 检测,flash AS 检测
  2. 数据传输:WAF 拦截,IPS 拦截
  3. 后端处理:扩展名检测,MIME TYPE 检测,文件格式检测,内容检测
  4. 写入文件系统:文件重名,杀毒软件查杀
  5. 访问文件:无执行权限,未知位置

你可能感兴趣的:(一步一步学习 Web 安全 4.1 文件上传简介)