gitleaks检测git项目中的敏感信息工具

admin 2025-12-22 04:01:06 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: gitleaks是一款用于检测git项目中敏感信息的工具,支持git模式和dir模式两种扫描方式。git模式可以检测历史提交中的敏感信息,而dir模式只能检测当前文件中的敏感信息。文章演示了如何使用gitleaks检测敏感信息,并介绍了常见命令和配置选项。建议在开发过程中使用gitleaks进行代码审计,避免敏感信息泄露。 综合评分: 91 文章分类: 安全工具,代码审计,漏洞分析,应用安全,安全开发


当前项目下 使用案例

对git项目进行扫描

用git将项目下载到本地

git clone https://github.com/xxxx/xxxcms.git

敏感信息扫描

gitleaks.exe git -v D:\path\xxxcms

扫描 git 时,会检测每次提交的内容中是否存在敏感信息,而不仅仅是当前的。如果 git 项目开发过程中,误上传了敏感信息,但只是覆盖而没有删除相关 Commit 信息,仍可能被发现。

本地目录扫描

除了扫描 git 项目,还可以直接对本地的目录进行扫描

gitleaks.exe dir -v D:\path\xxxcms

常见命令

将结果保存到指定文件

# 把报告保存在一个名为gitleaks-report.json的文件中
gitleaks git --report-path gitleaks-report.json

gitleaks git --baseline-path gitleaks-report.json --report-path findings.json

从输入流中检测

cat some_file | gitleaks -v stdin

自定义配置文件

默认配置文件: https://github.com/gitleaks/gitleaks/blob/master/config/gitleaks.toml

下载到本地后,使用

gitleaks.exe git  -c gitleaks.toml -v D:\androidlabs\1217\demo

我们也可以在该文件中添加自己的规则,比如检测身份证、银行卡号什么的 命令选项

**Gitleaks 功能**:扫描代码(无论历史版本或当前版本)中的敏感信息

**使用方法**:
  gitleaks [命令]

**可用命令**:
  completion  为指定的 Shell 生成自动补全脚本
  dir         扫描目录或文件中的敏感信息
  git         扫描 Git 仓库中的敏感信息
  help        查看任意命令的帮助信息
  stdin       从标准输入流中检测敏感信息
  version     显示 gitleaks 的版本号

**参数选项**:
  -b, --baseline-path string          指定基线文件路径,基线中记录的问题将被忽略
  -c, --config string                 指定配置文件路径
                                      优先级顺序如下:
                                      1.  命令行参数 --config/-c
                                      2.  环境变量 GITLEAKS_CONFIG
                                      3.  环境变量 GITLEAKS_CONFIG_TOML(传入配置文件内容)
                                      4.  目标路径下的 .gitleaks.toml 文件
                                      若上述四种方式均未配置,则 Gitleaks 将使用默认配置
      --diagnostics string            启用诊断功能(可选值:http 或 以逗号分隔的列表,如 cpu,mem,trace)
                                      说明:cpu=CPU性能分析,mem=内存性能分析,trace=执行流程追踪,http=通过 net/http/pprof 提供服务
      --diagnostics-dir string        非 http 模式下,诊断输出文件的存储目录(默认值为当前工作目录)
      --enable-rule strings           仅启用指定 ID 的检测规则
      --exit-code int                 检测到敏感信息时的程序退出码(默认值为 1)
  -i, --gitleaks-ignore-path string   指定 .gitleaksignore 文件或其所在文件夹的路径(默认值为当前目录 ".")
  -h, --help                          查看 gitleaks 的帮助信息
      --ignore-gitleaks-allow         忽略代码中 `gitleaks:allow` 格式的忽略注释
  -l, --log-level string              日志级别(可选值:trace、debug、info、warn、error、fatal)(默认值为 "info")
      --max-archive-depth int         嵌套压缩包的最大扫描深度(默认值为 0,即不扫描压缩包内容)
      --max-decode-depth int          递归解码的最大深度(默认值为 5)
      --max-target-megabytes int      超过该大小的文件将被跳过扫描
      --no-banner                     不显示程序启动时的 banner 信息
      --no-color                      关闭详细输出内容的颜色高亮
      --redact uint[=100]             对日志和标准输出中的敏感信息进行脱敏处理。
                                      若只需脱敏部分内容,可传入 0-100 的百分比数值,例如 --redact=20(默认值为 100%,即完全脱敏)
  -f, --report-format string          报告输出格式(可选值:json、csv、junit、sarif、template)
  -r, --report-path string            报告文件的输出路径(使用 "-" 表示输出到标准输出流 stdout)
      --report-template string        生成报告所用的模板文件路径(使用该参数时,会自动启用 --report-format=template)
      --timeout int                   设置 gitleaks 命令的超时时间,单位为秒(默认值为 0,即无超时限制)
  -v, --verbose                       显示扫描的详细输出信息
      --version                       查看 gitleaks 的版本号

**补充说明**:
如需查看某条命令的详细用法,请执行 `gitleaks [命令] --help`

关注微信公众号后台回复【20251219】,即可获取项目下载地址!

欢迎加入知识星球,星球内容主要有:

1、公众号文章备份、工具分享。

2、常见问题的答疑、解决方案汇总在知识星球,作为便于搜索的知识库。


查看原文:《gitleaks 检测git项目中的敏感信息工具》

评论:0   参与:  2