使用过Dependency check的同学,一定会遇到这个问题—— 每次执行依赖扫描时,由于网络问题会导致NVD下载种子数据的过程中的种种失败,不仅浪费了大量时间,还会因为下载文件的不完整性直接导致依赖检测的失败。所以我在使用Dependencycheck时都是通过Mysql数据库存储nvd数据,在实际工作中非常的有帮助!如果大家想了解具体的相关内容可以参考文章:
Dependency check配置Mysql数据库存储nvd数据_dependency-check9.0.10 nvd update failed: attempte-CSDN博客
之前公司都是通过Dependency check命令行的方式进行组件依赖安全检查,最近有了新的需求:需要在maven构建时运行Dependency check,于是我进行了相关技术调研,在调研过程中遇到了三个问题,在这里分享给大家,避免大家踩坑!
JDK 和Maven
dependency-check 11.0.0 or higher
- Java:
java -version
11.0 - Maven:
mvn -version
3.5.0 and higher
运行命令
dependency-check-maven插件可以使用mvn verify或在报告示例mvn site中执行。
使用mvn verify即可,或者直接运行插件
mvn org.owasp:dependency-check-maven:check
关于maven中pom.xml的配置大家可以参考下图,
如果想了解更详细的pom.xml信息,大家可以参考文章:
想通过maven 运行dependency-check的小伙伴必看!详解dependency-check-maven 插件的高效参数配置-CSDN博客
问题1 数据库版本与Dependencycheck 版本不匹配
DatabaseException: Unable to connect to the dependency-check database
[ERROR] caused by DatabaseException: Database schema does not match this version of dependency-check
[ERROR] caused by DatabaseException: Database schema is out of date
解决方案:
把dependency-check-maven 从最新版本降低到7.1.1(受限于mysql数据库的版本)
Mysql数据库 5.6.39
mysql-connector-java-8.0.28.jar
问题2 没有找到jdbc driver
DatabaseException: Unable to connect to the dependency-check database
[ERROR] caused by DatabaseException: Unable to connect to the database
[ERROR] caused by SQLException: No suitable driver found for jdbc:mysql://ip:3306/dependencycheck
解决方案:
在maven的pom.xml中设置Mysql数据库的driver路径
<databaseDriverPath>E:\driver</databaseDriverPath>
问题3.没有设置databaseDriverName
DatabaseException: Unable to connect to the dependency-check database
[ERROR] caused by DatabaseException: Unable to load database driver
[ERROR] caused by DriverLoadException: Unable to load database driver 'org.h2.Driver'
[ERROR] caused by ClassNotFoundException: org.h2.Driver
解决方案:
在maven的pom.xml中设置databaseDriverName
<databaseDriverName>com.mysql.cj.jdbc.Driver</databaseDriverName>
我的每一篇文章都希望帮助读者解决实际工作中遇到的问题!如果文章帮到了您,劳烦点赞、收藏、转发!您的鼓励是我不断更新文章最大的动力!