gitleaks - 开源检测地图Token、api key等敏感信息泄漏的工具
在之前的文章《苹果这次源码泄露事件对GIS行业有哪些警示?》中小编提到了苹果前端源码“泄露”事件,并且提到了几个目前前端开发中比较严重的安全风险。那针对这些风险项除了开发者本身的能力提升之外,还有没有更完美的检测机制呢?如果你作为团队的Leader如何尽可能避免这些问题呢?小编认为,除了做好构建配置、生产环境安全加固之外,还需要有一套机制持续检测仓库中是否有敏感信息被提交,而 Gitleaks 就是这样一种工具。
Gitleaks 是什么?
Gitleaks 是一个开源工具,可用于扫描 Git 仓库(包括历史提交)或目录/文件,检测硬编码的敏感信息,例如:密码、API 密钥、Token、凭证等。它支持多种扫描模式(如 git 模式、dir 模式、stdin 模式)以及配置自定义规则、忽略规则、基线报告等。其安装方式灵活:支持 Homebrew(Mac)、Docker 镜像、Go 源码构建等。社区活跃,在 GitHub 上有近 24 k 星,被广泛采用
简而言之:若你的项目中可能有敏感凭证、Token、秘钥(尤其是前端、后端、DevOps、CI/CD 环节)被误提交或遗留在历史中,Gitleaks 是一个显著增添保障的工具。

官网:https://gitleaks.io/
github地址:https://github.com/gitleaks/gitleaks
安装使用
示例(以 Mac + Homebrew 为例):
brew install gitleaks
Docker 方式:
docker pull ghcr.io/gitleaks/gitleaks:latest
docker run -v ${host_folder}:/path ghcr.io/gitleaks/gitleaks:latest [COMMAND] [OPTIONS] /path
源码方式:
git clone https://github.com/gitleaks/gitleaks.git
cd gitleaks
make build
基本使用
Gitleaks 支持几种模式,主要如下:
git模式:扫描 Git 仓库(包括 history 差异)。gitleaks git -v path_to_repodir(或directory,files)模式:扫描指定目录或文件。gitleaks dir -v path_to_directory_or_filestdin模式:从 stdin 流中读取输入并扫描。cat some_file | gitleaks -v stdin
小编使用的是第一种模式。
落地建议(结合GIS项目)
小编经过摸索,主要总结了以下的几个经验。
- 开发初期即引入 Gitleaks:不要等到上线或发现问题了才去扫描,建议在项目早期就把 Gitleaks 加入 CI 或 pre-commit 流程,小编使用的Husky 集成了 Gitleaks。
- 定义敏感信息清单:结合你们业务(如地图 token、地图平台凭证、IoT 设备 API Key、数据库连接字符串、第三方服务密钥等),编制 “哪些是敏感信息”,然后在 Gitleaks 配置中为其定制规则。
- 扫描历史仓库:回顾现有仓库(尤其是长期积累、可能存在旧提交老问题)做一次全面扫描,包括提交历史。若发现敏感信息,建议做 Git 历史清洗或密钥更新。
- 明确运维流程:一旦检测出敏感信息,建议制定应急流程:密钥撤换、凭证回顾、代码或配置重构、仓库历史清洗(如 git filter-repo / BFG)、并记录审计。小编目前在私有的gitlab上添加了一个runner,用于扫描敏感信息,如果有报则不允许合并到主分支。
总结
小编实践下来发现常见的token泄漏都可以非常容易被发现,但也不是100%,有部分的token依然检测不到,需要自己写规则来拦截,这个工具的好处是可以把一些低级的安全问题在最早的时间被发现,避免一些低级事故,尤其在团队成员多且水平不一的情况下。但要达到理高的安全检测,这点可能还不够,毕竟安全没上限,大家还是根据自己团队的实践情况来做决定。
相关阅读
声明
1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。
2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。