我相信,你在开发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. C4D运动图形基本训练学习教程
  2. 摧枯拉朽,说说ES6的三把火
  3. XamarinSQLite教程在Xamarin.Android项目中提取数据库文件
  4. new一个xssfworkbook时出错_java用poi操作excel的时候,new XSSFWorkbook,总是报错?
  5. gRPC中Java和node进行异构通信-互为客户端和服务端
  6. Docker中启动、终止和删除容器命令
  7. PaddleHub人像分割模型:AI人像抠图及图像合成
  8. 高校计算机课程建设研讨会通知,常熟理工学院新闻网
  9. GET与POST传递数据的最大长度能够达到多少
  10. linux系统读取excel文件是否存在,小弟我用poi读excel,在window下没有有关问题,但把程序放到linux上时,读取客户端的excel文件报错,不...
  11. A Quantization-Friendly Separable Convolution for MobileNets
  12. 信号调制疑问_DSM 调制器simulink仿真分析
  13. 最大化窗口设置_Qt学习笔记4(窗口操作及插入图片)
  14. java使用properties_Java中使用Properties配置文件的简单方法
  15. 算法踩坑4-冒泡排序
  16. windows 内存管理的几种方式及其优缺点
  17. 中国外显子组测序行业市场供需与战略研究报告
  18. 计算机重做系统 d盘,pe重装系统后原c盘变称了d盘如何解决
  19. Google浏览器插件
  20. 产品原型设计:使用axure实现菜单下拉效果

热门文章

  1. 分销平台传统的宣传流程
  2. RAC的并发操作与分布式锁DLM
  3. ABAP ALV DATA_CHANGED 函数使用说明 (ALV备忘二)
  4. 产品破局思考:一个思维,一种策略
  5. centos8升级centos stream 8
  6. sklearn基础篇(三)-- 鸢尾花(iris)数据集分析和分类
  7. 【面试】前端面试之开发性能篇
  8. Windows系统蓝屏代码分析
  9. 【读点论文】FBNetV2:Differentiable Neural Architecture Search for Spatial and Channel D扩大搜索空间,复用featuremap
  10. 【c#】获取DGV单元格对象方法dgv按钮列的使用介绍