我相信,你在开发Web应用时,后端一定会提供文件的上传功能,比如前端页面肯定有图片的展示,后端必定会提供图片的上传入口。但是,你在做文件上传功能时,是否考虑过它的安全性问题呢?

请看下面的代码:

@PostMapping("upload")

public String upload(@RequestParam("file")MultipartFile file,HttpServletRequest request)throws Exception{

String filename = file.getOriginalFilename();

//上传文件到服务器

String url = uploadService.upload(filename);

return url;

}

上述代码存在非常严重的安全漏洞,可以看到,该代码没有对文件做任何的限制,只要传入的是文件流,它就能接收它,并且将其上传到服务器。

假设你的服务器运行的是 Tomcat 容器,那么它能执行后缀为 .jsp 的文件,攻击者就可以上传 .jsp 文件,并且文件内容为可执行的 java 代码。当 .jsp 文件被上传上去后,攻击就可以利用菜刀、蚁剑等工具连接该 .jsp 文件,连接成功后,攻击者就可以控制你的服务器,俗称 getshell。如图所示:

java防止文件上传_文件上传漏洞:getshell的最好方式,我们如何防御?相关推荐

  1. ant react 上传_React实战之Ant Design—Upload上传_附件上传

    React实战之Ant Design-Upload上传_附件上传 Upload组件大家都在官方文档中看过了,但写的时候还是会遇到许多问题,一些新手看了文档后感觉无从下手,本文过多的简绍就不说了,直接看 ...

  2. java实现上传_文件上传(java)

    最近看了一本书上的代码,代码的主要功能是实现文件的上传.但是,当我运行代码的时候竟然报错了.(我用的IDEA).有错就解决吧.以下是我遇到的几个错误. 废话不多说先附上源代码. UploadServl ...

  3. java struts2 excel上传_文件上传方法,使用Struts2,实现Excel文件读取并写入数据库技术...

    文件上传方法,使用Struts2,实现Excel文件读取并写入数据库技术 如题:文件信息的批量导入-- 项目中经常会遇到客户的一些单表信息的数据批量导入,也就是提供定制Excel表,再把Excel表中 ...

  4. java怎么知道上传文件是否成功_文件包含漏洞之——tomcat CVE-2020-1938漏洞复现

    这个漏洞是今年2月份出现的,他的影响范围也是非常广的. 2月20日,国家信息安全漏洞共享平台(CNVD)发布了Apache Tomcat文件包含漏洞(CNVD-2020-10487/CVE-2020- ...

  5. java上传文件的二进制_文件的上传:二进制文件的上传;

    ***二进制文件上传的方法: ***在lib目录下:导入文件上传的开源架包:commons-fileupload-1.2.1.jar,commons-io-2.0.jar: 建立Servlet类:Up ...

  6. jsp文件上传_文件上传

    一.文件上传的目的--脚本文件 文件上传的一共可造成三种危害,从低到高分别是,任意内容文件,html文件,脚本文件. 任意内容文件 任意内容文件指的是虽然文件后缀不可控,但是文件内容可控,比如我可以上 ...

  7. transferto 文件不存在_文件上传时,MultipartFile.transferTo() 方法报 FileNotFoundException...

    Spring Upload File 报错FileNotFoundException 环境: Springboot2.0.4JDK1.8内嵌 Apache Tomcat/8.5.32 1.前端代码 前 ...

  8. channelsftp 上传文件为空_文件上传踩坑记及文件清理原理探究

    目录 1. 糟糕的异步存储文件实现 2. 异常原因推理 3. 问题解决方式 4. spring清理文件原理 5. tomcat清理文件原理 最近搞一个文件上传功能,由于文件太大,或者说其中包含了比较多 ...

  9. httpclient base64 文件上传_文件上传下载

    说道文件上传下载,这个业务需求并不是很复杂思想如下 1.将文件上传到 某台服务器上的指定的路径下也可以这样理解 文件上传就是将本地图片发送到别的地方,下载就是将别的地方的图片放在本地 2.将路径同文件 ...

最新文章

  1. 激光雷达lidar与点云数据
  2. iOS:转载:UIControl的使用
  3. 定制Apache索引样式
  4. 每日一皮:一个难以复现的 bug ...
  5. java读取properties文件,深度集成!
  6. 每3位新码农中就有2个是单身?来自31000人的调查报告显示……
  7. Linux系统篇-文件系统虚拟文件系统
  8. LiveVideoStackCon2021音视频技术大会北京站开幕在即,精彩抢鲜看
  9. emui10如何降级_如何评价EMUI10按包名降分辨率机制的行为?
  10. Xshell替代品 -- FinalShell
  11. ThinkPHP6项目基操(19.实战部分 Mysql模型事务操作)
  12. 微软补丁星期二修复120个漏洞,含2个已遭利用的 0day
  13. python中dump与dumps的区别
  14. IPTV机顶盒刷机过程--山东电信【天邑TY608】
  15. 基于Flask框架实现Mock Server
  16. 全国行政区划代码(身份证前六位)
  17. GPS模块开发详解(转)
  18. 深入解析 | 如何设置关键词密度?
  19. PyMOL简单操作图文介绍
  20. wangEditor富文本编辑器安装与入门

热门文章

  1. RF自动化测试系列-第三篇 测试数据
  2. RK键盘出现上下左右键对应890←输出,Del键输出q,q键有删除功能解决
  3. springcloud(Hystrix服务降级,服务熔断)
  4. Jakarta Bean Validation,Constrain once, validate everywhere!
  5. 我的爱好作文玩计算机800,我的爱好作文800字
  6. 香港服务器需要如何来维护呢?
  7. pdf转成jpg或png的方法
  8. 前端基础教程:简单的实现html+css+javascript点赞效果
  9. 关于华为P10(Android 8.0系统)出现的一个莫名奇妙的ANR
  10. asp和asp.net有什么区别?