如何处理pom文件中没有找到HUB检查到高危漏洞的依赖包
最近使用HUB工具检查到maven工程中存在高危险漏洞,虽然定位到具体的引用包了,但是在pom文件中却没有发现该依赖包。此时,我们就需要用到这条命令mvn dependency:tree,该命令会将maven工程所依赖的包按照树形格式展示出来,我们可以将输出内容导入到一个文本中,例如:mvn dependency:tree > jar.txt ,输出信息类似于下图所示:

从上图的示例中可以看到该工程直接依赖了两个jar包,分别是com.alibaba:fastjson:jar:1.2.51和org.apache.poi:poi-examples:jar:4.0.1,但是org.apache.poi:poi-examples:jar:4.0.1包中又引用了其它的包,也就是说该工程中间接依赖了其它的包。注意了,上图中的 "+-" 和"\-"并没有什么意义,只是为了让分级看起来更加直观;当然我们可以根据缩进情况可以确定哪些包是工程直接引用的,而哪些包又是间接引用的。最近用HUB工具检查产品代码质量时发现一个高风险漏洞,但是该漏洞是在一个间接引用包中,所以在pom文件中是不能检索的到的,这是我们就需要借助上述命令了。那现在知道方法,如何处理呢?首先,看看HUB工具检查到的问题现象,如下图所示:

接着,通过mvn dependency:tree > jar.txt命令将maven工程所依赖的包关系导出,如下图所示:

从上面两幅图中分析可知:工程中间接用到的包commons-collections:commons-collections:jar版本是3.2.1,经过HUB工具检查,发现该版本存在高风险漏洞,需要升级到3.2.2版本,才可以解决该高危问题。此外,从上图中我们还可以知道commons-collections:commons-collections:jar:3.2.1包是在net.sf.json-lib:json-lib:jar:jdk15:2.4包中被依赖的,那么若想升级commons-collections:commons-collections:jar的版本,那么就需要升级net.sf.json-lib:json-lib:jar:jdk15版本。据此,我当时就认为只要从maven官网查看一下net.sf.json-lib:json-lib:jar:jdk15包最新的版本是多少,然后在被涂鸦的包中修改一下pom文件中依赖该包 的版本号就可以了;可结果很意外,并非我所期望。我在maven官网看到的net.sf.json-lib:json-lib:jar:jdk15包最新版本就是2.4,如下图所示:

既然上述的修改策略不可用,那么在被涂鸦的包中可以直接使用net.sf.json-lib:json-lib:jar:jdk15:2.4依赖包,但是不要间接使用该包中的commons-collections:commons-collections:jar:3.2.1依赖包,我们可以在涂鸦的包中直接依赖commons-collections:commons-collections:jar包。在maven官网中可以找到commons-collections:commons-collections:jar包的3.2.2版本,如下图所示:

最后,我们再看看maven中所依赖包的情况,如下图所示:

从上图中可以看出,commons-collections:commons-collections:jar:3.2.2包和net.sf.json-lib:json-lib:jar:jdk15:2.4处于同一级,都是被直接依赖的包。到此,我们的产品高危漏洞也就得到解决了。
------20191230闪
如何处理pom文件中没有找到HUB检查到高危漏洞的依赖包的更多相关文章
- Maven项目中在properties 中使用 ${} 来引用pom文件中的属性
比如在pom文件中定义了属性如下: <jdbc.host.global>127.0.0.1</jdbc.host.global> <jdbc.databasename.g ...
- idea中的pom文件中的jar包下载不了,手动下载jar包的方法
问题描述: 在pom文件中添加依赖的时候,程序怎么着都是下载不了,而且实验了各种方式: IDEA引MAVEN项目jar包依赖导入问题解决 https://www.cnblogs.com/a845701 ...
- 【IDEA】Maven踩坑:pom文件中的默认profiles不生效+IDEA中Maven的profiles使用说明
一.问题即分析 项目pom文件中的profiles有3个配置:dev.test和production 默认配置的是dev,如下图: 但在本地起服务时,读取的配置始终是test里的. 二.原因 2.1 ...
- Maven pom文件中dependency scope用法
在Maven中依赖的域有:compile.provided.runtime.system.test.import 一.compile(默认) 当依赖的scope为compile的时候,那么当前这个依赖 ...
- maven在pom文件中引入了icepdf-core包,pom文件却莫名的报错,说jai_core包missing
maven在pom文件中引入了icepdf-core包,却莫名的报错,说jai_core包missing,把这个jai_core包引入之后还是一样报错,PS:icepdf-core使用的时候不用引用j ...
- maven在pom文件中添加你想要的jar包
概述:POM 文件里面的依赖jar包经常需要添加, 仅需要在google中代码查找 :maven 你需的jar包名称 repository 用了Maven,所需的JAR包就不能再像往常一样,自己找到并 ...
- maven项目,导入的jar包,没有包含在pom文件中,install失败
[INFO] BUILD FAILURE[INFO] ------------------------------------------------------------------------[ ...
- 关于使用命令添加jar进自己的pom文件中-maven项目添加jar包
现在几乎开发项目都是使用的maven项目,但是有的时候可以使用比较偏门或者新的jar可能在网上搜不到在pom文件里的配置应该如何写,因此写下这篇博客. 比如我现在想加入的AAA.jar这个包 打开cm ...
- pom文件中maven-assembly-plugin插件学习
一.使用场景 如果项目是微服务架构,可能用到这个插件的概率比较高,平时普通的项目不需要这样的实现方式. 如果项目内的一部分通用功能,不需要挨个引用,则需要将通用功能部分达成jar包. 二.Maven- ...
随机推荐
- apache/tomcat安装过程略
apache/tomcat安装过程略 一些变量 apache安装目录 APACHE_PREFIX=/Data/app/apache apache配置文件 APACHE_CONF=/etc/httpd/ ...
- 2019IT运维大会上海站 智和信通解析等保2.0支撑
2019IT运维大会上海站 智和信通解析等保2.0支撑 2019年11月14日上午8:30-12:10,上海锦荣国际大酒店二层锦荣厅
- ID生成器之——别人家的方案and自家的方案
“叮咚,叮咚……”,微信提示音一声接一声,声音是那么的频繁,有妖气,待俺去看一看. 这天刚吃完午饭,打开微信,发现我们的技术讨论组里有 100 多条未读消息,心想,是不是系统出问题了?怎么消息那么频繁 ...
- MongoDB导入导出以及数据库备份111
-------------------MongoDB数据导入与导出------------------- 用命令行打开mongo安装路径如图: 执行后, 在此处输入命令,如:mongoexport ...
- java设计模式学习笔记--开闭原则
基本介绍 1.开闭(ocp)原则时编程中最基础.最重要的设计原则 2.一个软件实体如类.木块和函数应该对扩展开放,对修改关闭.用抽象构建框架,用实现扩展细节.即对提供方开放,对使用方关闭. 3.当软件 ...
- AndroidStudio跑起来第一个App时新手遇到的那些坑
场景 当你看了一个Android教程,满心欢喜想要运行第一个HelloWorld时却发现,Android Studio新建的工程老是报错. 会编译不通过.运行按钮灰色.没有虚拟机,一个简简单单的Hel ...
- mysql必知必会--用正则表达式 进行搜索
正则表达式介绍 前两章中的过滤例子允许用匹配.比较和通配操作符寻找数据.对 于基本的过滤(或者甚至是某些不那么基本的过滤),这样就足够了.但 随着过滤条件的复杂性的增加, WHERE 子句本身的复杂性 ...
- Linux 用户、用户组管理
Linux系统是一个多用户多任务的分时操作系统,每个用户都有用户名(唯一).口令,用户名唯一标识该用户账号. 用户管理主要涉及到用户添加.修改和删除. 切换用户 su 用户名 su即swit ...
- Ubuntu-Server18.04开启无线网卡并配置静态ip
手里有一个笔记本快10年了,还是奔腾处理器,最近把它做成了Ubuntu-Server的系统,花了点时间折腾无线网卡,稍微记录一下,希望看见的人能少踩点坑. 1. 制作U盘启动工具,从Ubuntu官网下 ...
- clr via c# 定制特性
1,特性的应用范围:特性可应用于程序集,模块,类型,字段,方法,方法参数,方法返回值,属性,参数,泛型参数 2,利用前缀告诉编译器表明意图---下面的倾斜是必须的表明了我们的目标元素: [assemb ...