Dependency check配置本地数据库mysql
标签搜索
侧边栏壁纸
  • 累计撰写 9 篇文章
  • 累计收到 58 条评论

Dependency check配置本地数据库mysql

AiiCi
2024-05-01 / 15 评论 / 129 阅读 / 正在检测是否收录...

一、简介

  Dependency Check 是一款开源的静态分析工具,主要用于检测项目中的依赖库是否存在已知的安全漏洞。它是由 OWASP(Open Web Application Security Project)开发和维护的,旨在帮助开发者在构建软件时提前识别和修复安全隐患。以下是 Dependency Check 的一些关键特性和功能:

二、核心功能

安全漏洞检测:
  Dependency Check 通过扫描项目的依赖库和插件,检测其中是否包含已知的安全漏洞。它会检查常见的依赖管理系统(如 Maven、Gradle、NPM、Yarn、Composer 等)所引用的库版本,并与已知漏洞数据库进行比对。

漏洞数据库:
  工具主要依赖于 National Vulnerability Database (NVD) 和其他来源(如 NPM Advisory、OSS Index 等)来获取漏洞信息。这些数据库包含了大量的已知安全漏洞及其详细信息。

生成报告:
  Dependency Check 在扫描完成后生成详细的报告,报告中列出了所有发现的漏洞,风险等级,受影响的组件及其版本,以及解决这些漏洞的建议和链接。

多语言支持:
  支持多种编程语言和包管理工具,包括 Java、.NET、Node.js、Python、Ruby、PHP 等,这使得它在不同技术栈的项目中都能使用。

集成与自动化:
  可以与 CI/CD 管道集成,自动化依赖库的安全检查。例如,可以通过 Jenkins、GitHub Actions 等工具在构建过程中自动运行 Dependency Check,确保每次构建都不会引入新的漏洞。

三、使用方式

命令行工具:
  Dependency Check 提供了一个命令行工具,可以直接在开发环境或 CI 环境中运行。用户可以通过命令行参数指定要扫描的项目路径和其他配置选项。

插件形式:
  支持作为插件集成到构建工具中,例如 Maven、Gradle、SBT、Ant 等,使得在构建过程中自动进行安全检查。

REST API:
  提供了 REST API,允许用户通过网络请求方式进行扫描和获取报告,适用于需要自定义集成的场景。

优点

  • 提前发现漏洞:在开发和构建过程中提前发现并修复依赖库中的安全问题,减少生产环境中漏洞带来的风险。
  • 全面的报告:详细的报告帮助开发者快速理解和解决问题。
  • 自动化和集成:与各种 CI/CD 工具的良好集成,使安全检查流程自动化,减少手动操作的时间和错误。
    例子

运行 Dependency Check 扫描 Maven 项目:

dependency-check --project myProject --scan /path/to/project --format HTML --out report.html

在 Maven 项目中使用 Dependency Check 插件:

<build>
  <plugins>
    <plugin>
      <groupId>org.owasp</groupId>
      <artifactId>dependency-check-maven</artifactId>
      <version>6.0.3</version>
      <executions>
        <execution>
          <goals>
            <goal>check</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

通过这些功能,Dependency Check 帮助开发团队提升项目的安全性,减少因第三方依赖库漏洞导致的安全事件风险。

四、配置本地数据库

目前支持的数据库包括:h2、mysql、oracle、sql server、postgresQL。这里我们以mysql作为实例讲解!
初始化数据库,执行链接中的脚本即可
https://github.com/jeremylong/DependencyCheck/blob/main/core/src/main/resources/data/initialize_mysql.sql
很重要!需要将mysql的驱动放到 dependency-checklib 目录下,使用下面的脚本即可,它会先进行导入数据库然后再进行检测。
第一次使用去掉-n参数,如果加了-n不会同步数据库

#!/bin/bash
#########################################
#          Author: AiiCi                #
#          Time: 2024-05                #
#          description: 依赖单扫描      #
#########################################
DIR="/root/dependency-check/bin" #可执行文件目录
TAGGET="/home/backupJenkins/workspace" #扫描目录
OUTPUT="/root/out_dependency-check" #输出目录
if [ -z $1 ];then
  echo -e "\e[31mUSE: $0 ProjectName\e[0m"
  exit 1
fi
ls $TAGGET/$1/target/ >/dev/null 2>&1
if [ $? -ne 0 ];then
  echo -e "\e[31m$TAGGET/$1/target/ directory not found\e[0m"
  exit 1
fi
cd $DIR
./dependency-check.sh --project $1 --disableRetireJS --disableNodeJS -s $TAGGET/$1/target/ --dbDriverName com.mysql.cj.jdbc.Driver --connectionString jdbc:mysql://10.169.140.235:3306/dependencycheck --dbUser dcuser --propertyfile /root/dependency-check/pwd.properties -n -o $OUTPUT/$1 -l info.log
cd - >/dev/null
  • dbDriverName:表示数据库的dirver名称
  • connectionString:表示连接数据库的字符串,执行初始化脚本后创建的数据库叫dependencycheck
  • dbUser:是用户名,初始化的用户名叫 dcuser
  • propertyfile:这个参数是表示dcuser 的密码,需要在properties文件中存储,形式是:
  • data.password=DC-Pass1337! 这个密码是执行初始化脚本后的默认密码
  • -n 表示不同步数据库

如果需要批量执行可以选择下列脚本:

#!/bin/bash
#########################################
#          Author: AiiCi                #
#          Time: 2024-05                #
#          description: 依赖全扫描      #
#########################################
DIR="/root/dependency-check/bin" #可执行文件路径
TAGGET="/home/backupJenkins/workspace" #扫描路径
OUTPUT="/root/out_dependency-check" #输出路径
PROJECTS=($(ls $TAGGET|grep -v "tmp")) #项目列表去掉了tmp缓存目录

cd $DIR 
for project in "${PROJECTS[@]}"; do
echo -e "\e[32m当前执行项目 $project\e[0m"
./dependency-check.sh --project $project --disableRetireJS --disableNodeJS -s $TAGGET/$project/target/ --dbDriverName com.mysql.cj.jdbc.Driver --connectionString jdbc:mysql://10.169.140.235:3306/dependencycheck --dbUser dcuser --propertyfile /root/dependency-check/pwd.properties -n -o $OUTPUT/$project
done
cd - >/dev/null
0

海报

正在生成.....

评论 (15)

取消
  1. 头像
    yvyairstbx
    ·Windows 10 · Google Chrome
    沙发

    案例丰富且贴合主题,论证逻辑环环相扣。

    回复 删除 垃圾
  2. 头像
    yfkjsjiqta
    ·Windows 10 · Google Chrome
    板凳

    以小见大,从平凡事物中提炼普世价值。

    回复 删除 垃圾
  3. 头像
    yeamwrbtxu
    ·Windows 10 · Google Chrome
    地毯

    ?实用类评语?

    回复 删除 垃圾
  4. 头像
    eofjrplbuv
    ·Windows 10 · Google Chrome
    第4楼

    内容的丰富性和深度让人仿佛置身于知识的海洋,受益匪浅。

    回复 删除 垃圾
  5. 头像
    msvwjoanao
    ·Windows 10 · Google Chrome
    第5楼

    文字流畅如丝,语言优美动人,读来令人心旷神怡。

    回复 删除 垃圾
  6. 头像

    新盛客服电话是多少?(?183-8890-9465—《?薇-STS5099】【
    新盛开户专线联系方式?(?183-8890--9465—《?薇-STS5099】【?扣6011643??】
    新盛客服开户电话全攻略,让娱乐更顺畅!(?183-8890--9465—《?薇-STS5099】客服开户流程,华纳新盛客服开户流程图(?183-8890--9465—《?薇-STS5099】

    回复 删除 垃圾
  7. 头像

    果博东方客服开户联系方式【182-8836-2750—】?薇- cxs20250806】
    果博东方公司客服电话联系方式【182-8836-2750—】?薇- cxs20250806】
    果博东方开户流程【182-8836-2750—】?薇- cxs20250806】
    果博东方客服怎么联系【182-8836-2750—】?薇- cxs20250806】

    回复 删除 垃圾
  8. 头像

    果博东方客服开户联系方式【182-8836-2750—】?薇- cxs20250806】
    果博东方公司客服电话联系方式【182-8836-2750—】?薇- cxs20250806】
    果博东方开户流程【182-8836-2750—】?薇- cxs20250806】
    果博东方客服怎么联系【182-8836-2750—】?薇- cxs20250806】

    回复 删除 垃圾
  9. 头像

    果博东方客服开户联系方式【182-8836-2750—】?薇- cxs20250806】
    果博东方公司客服电话联系方式【182-8836-2750—】?薇- cxs20250806】
    果博东方开户流程【182-8836-2750—】?薇- cxs20250806】
    果博东方客服怎么联系【182-8836-2750—】?薇- cxs20250806】

    回复 删除 垃圾
  10. 头像

    果博东方客服开户联系方式【182-8836-2750—】?薇- cxs20250806】
    果博东方公司客服电话联系方式【182-8836-2750—】?薇- cxs20250806】
    果博东方开户流程【182-8836-2750—】?薇- cxs20250806】
    果博东方客服怎么联系【182-8836-2750—】?薇- cxs20250806】

    回复 删除 垃圾
  11. 头像

    东方明珠客服开户联系方式【182-8836-2750—】?μ- cxs20250806
    东方明珠客服电话联系方式【182-8836-2750—】?- cxs20250806】
    东方明珠开户流程【182-8836-2750—】?薇- cxs20250806】
    东方明珠客服怎么联系【182-8836-2750—】?薇- cxs20250806】

    回复 删除 垃圾
  12. 头像

    华纳圣淘沙公司快速开户通道(183-8890-9465—?薇-STS5099【6011643】

    三分钟搞定华纳圣淘沙公司开户

    (183-8890-9465—?薇-STS5099【6011643】
    华纳圣淘沙公司极速开户攻略(183-8890-9465—?薇-STS5099【6011643】

    华纳圣淘沙开户流程提速秘籍(183-8890-9465—?薇-STS5099【6011643】

    如何快速完成华纳圣淘沙公司注册(183-8890-9465—?薇-STS5099【6011643】

    回复 删除 垃圾
  13. 头像

    华纳圣淘沙公司开户新手教程

    零基础学会(183-8890-9465薇-STS5099)
    华纳圣淘沙公司开户

    华纳圣淘沙公司开户保姆级教程(183-8890-9465薇-STS5099)

    一步步教你开通华纳圣淘沙公司账户(183-8890-9465薇-STS5099)

    华纳圣淘沙公司开户分步图解

    首次开户必看:(183-8890-9465薇-STS5099)
    华纳圣淘沙全攻略

    华纳圣淘沙公司开户实操手册(183-8890-9465薇-STS5099)
    华纳圣淘沙开户流程视频教程

    手把手教学:(183-8890-9465薇-STS5099)
    华纳圣淘沙公司开户

    华纳圣淘沙公司开户完全指南(183-8890-9465薇-STS5099)

    回复 删除 垃圾
  14. 头像

    华纳圣淘沙公司开户新手教程

    零基础学会(183-8890-9465薇-STS5099)
    华纳圣淘沙公司开户

    华纳圣淘沙公司开户保姆级教程(183-8890-9465薇-STS5099)

    一步步教你开通华纳圣淘沙公司账户(183-8890-9465薇-STS5099)

    华纳圣淘沙公司开户分步图解

    首次开户必看:(183-8890-9465薇-STS5099)
    华纳圣淘沙全攻略

    华纳圣淘沙公司开户实操手册(183-8890-9465薇-STS5099)
    华纳圣淘沙开户流程视频教程

    手把手教学:(183-8890-9465薇-STS5099)
    华纳圣淘沙公司开户

    华纳圣淘沙公司开户完全指南(183-8890-9465薇-STS5099)

    回复 删除 垃圾
  15. 头像

    《华纳圣淘沙公司开户流程全解析》→ 官方顾问一对一指导??? 安全联系:183第三段8890第四段9465
    《华纳圣淘沙开户步骤详解》→ 」专属通道快速办理??? 安全联系:183第三段8890第四段9465
    《华纳圣淘沙账户注册指南》→ 扫码获取完整资料清单?「微?? 安全联系:183第三段8890第四段9465
    《新手开通华纳圣淘沙公司账户指南》→ 限时免费咨询开放??? 安全联系:183第三段8890第四段9465
    《华纳圣淘沙企业开户标准流程》→ 资深顾问实时解答疑问??? 安全联系:183第三段8890第四段9465
    《华纳圣淘沙开户步骤全景图》→ 点击获取极速开户方案??? 安全联系:183第三段8890第四段9465
    《华纳圣淘沙账户创建全流程手册》→ 预约顾问免排队服务?9?? 安全联系:183第三段8890第四段9465 《从零开通华纳圣淘沙公司账户》→ 添加客服领取开户工具包?? 安全联系:183第三段8890第四段9465
    《官方授权:华纳圣淘沙开户流程》→ 认证顾问全程代办?」?? 安全联系:183第三段8890第四段9465
    《华纳圣淘沙开户说明书》→立即联系获取电子版文件??? 安全联系:183第三段8890第四段9465

    回复 删除 垃圾