当前位置: 首页 > news >正文

结合Coverity扫描Spring Boot项目进行Path Manipulation漏洞修复

本篇介绍使用Coverity 扫描基于Spring Boot 项目中的Path Manipulation 漏洞, 进而解决风险,并且可以通过扫描。

什么样的代码会被扫描有路径操纵风险?

在Spring Boot 项目中, 实验了如下的场景:

1. Control 中 file path 作为参数传递的会被扫描,单纯服务方法不会

场景: 控制器方法, 文件名作为请求的参数,
是否被扫描包含风险: 是

	@RequestMapping("/canScan")public void canScan(String fileName) {Path path = Paths.get(fileName).normalize().toAbsolutePath();path.toFile();}

场景: 服务方法, 文件名作为参数,
是否被扫描包含风险: 否

	public void noScan(String fileName) {Path path = Paths.get(fileName).normalize().toAbsolutePath();path.toFile();}

2. 使用白名单进行了防御, 但是还是会被扫出

  • 定义一个isValidPath() 判断路径是否合法 - 被扫出风险
	public boolean isValidPath(String filePath) {return filePath.startsWith(
http://www.lryc.cn/news/615.html

相关文章:

  • 【FFMPEG源码分析】从ffplay源码摸清ffmpeg框架(一)
  • C++蓝桥杯 基础练习,高精度加法,输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。
  • MySQL面试题:SQL语句的基本语法
  • Fluid-数据编排能力原理解析
  • 并发线程、锁、ThreadLocal
  • CMMI-结项管理
  • 网络通信协议是什么?
  • 阶段5:Java分布式与微服务实战
  • 我的创作纪念日
  • Qml学习——动态加载控件
  • 设计模式之职责链模式
  • MySQL入门篇-MySQL 8.0 延迟复制
  • FPGA时序约束与分析 --- 实例教程(1)
  • go深拷贝和浅拷贝
  • linux网络系统层面的配置、管理及操作命令汇总
  • R数据分析:孟德尔随机化中介的原理和实操
  • 【C++】 类和对象 (下)
  • asp获取毫秒时间戳的方法 asp获取13位时间戳的方案
  • Python基础篇(十五)-- Python程序接入MySQL数据库
  • 程序员不得不知道的 API 接口常识
  • 【项目精选】基于Java的银行排号系统的设计与实现
  • 前端 基于 vue-simple-uploader 实现大文件断点续传和分片上传
  • 解决报错: ERR! code 128npm ERR! An unknown git error occurred
  • 聊城高新技术企业认定7项需要注意的问题 山东同邦科技分享
  • 菊乐食品更新IPO招股书:收入依赖单一地区,规模不及认养一头牛
  • Elasticsearch安装IK分词器、配置自定义分词词库
  • Linux嵌入式开发——shell脚本
  • CV【5】:Layer normalization
  • 跳跃游戏 II 解析
  • 易基因|猪肠道组织的表观基因组功能注释增强对复杂性状和人类疾病的生物学解释:Nature子刊