文章总结: 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项目中的敏感信息工具》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论