ChatGPT-API-Leakage完全指南:10个步骤掌握GitHub API密钥嗅探工具

【免费下载链接】ChatGPT-API-Leakage Scan GitHub for available OpenAI API Keys 【免费下载链接】ChatGPT-API-Leakage 项目地址: https://gitcode.com/gh_mirrors/ch/ChatGPT-API-Leakage

ChatGPT-API-Leakage是一款强大的GitHub API密钥嗅探工具,能够帮助开发者扫描GitHub上泄露的OpenAI API密钥,提升API安全意识。本指南将通过10个简单步骤,带你从安装到熟练使用这款工具,轻松掌握密钥检测与保护技巧。

1. 工具简介:什么是ChatGPT-API-Leakage?

ChatGPT-API-Leakage是一个开源安全工具,专为扫描GitHub上泄露的OpenAI API密钥设计。它通过智能搜索和正则匹配技术,能够快速识别公开代码库中可能存在的API密钥,帮助开发者及时发现并修复安全漏洞。

该工具采用Selenium模拟浏览器操作,通过GitHub网页搜索实现正则表达式匹配,比传统API搜索更精准。扫描结果会自动存储在SQLite数据库中,方便后续分析和管理。

2. 准备工作:安装必要依赖

在开始使用前,请确保你的系统已安装以下工具:

  • Google Chrome浏览器
  • Python包管理器uv(自动处理Python版本和依赖)

uv是一个快速的Python包管理器,能自动读取项目中的pyproject.tomluv.lock文件,确保依赖环境一致性。如果你还没有安装uv,可以访问uv官方文档获取安装指南。

3. 一键安装:获取工具源码

首先,克隆项目仓库到本地:

git clone https://gitcode.com/gh_mirrors/ch/ChatGPT-API-Leakage
cd ChatGPT-API-Leakage

然后使用uv安装项目依赖:

uv sync

如需包含开发工具(如pylint、flake8、ruff),可运行:

uv sync --all-groups

4. 快速启动:运行扫描工具

安装完成后,只需一条命令即可启动工具:

uv run main.py

首次运行时,工具会自动打开Chrome浏览器,要求你登录GitHub账号。这是因为GitHub的高级搜索功能需要用户登录才能使用。登录成功后,工具将开始自动扫描过程。

ChatGPT-API-Leakage运行演示 ChatGPT-API-Leakage扫描过程演示,显示API密钥检测进度和结果

5. 高级配置:自定义扫描参数

工具支持多种命令行参数,可根据需求自定义扫描行为:

参数 描述 默认值
--from-iter 从指定迭代开始扫描 None
--debug 启用调试模式,显示详细日志 False
-ceko, --check-existed-keys-only 仅检查数据库中已存在的密钥 False
-k, --keywords 指定搜索关键词列表 默认关键词列表
-l, --languages 指定编程语言过滤列表 默认语言列表

常用示例:

# 从迭代100开始扫描
uv run main.py --from-iter 100

# 仅检查现有密钥
uv run main.py --check-existed-keys-only

# 使用自定义关键词和语言
uv run main.py -k "openai" "chatgpt" -l python javascript

6. 扫描原理:工具如何工作?

ChatGPT-API-Leakage的核心工作流程包括以下步骤:

  1. 关键词搜索:使用预设关键词(如"api key"、"openai"、"chatgpt"等)在GitHub上搜索相关代码库。完整关键词列表可查看src/configs.py文件。

  2. 语言过滤:默认扫描多种编程语言,包括Python、JavaScript、TypeScript等,可通过参数自定义。

  3. 路径过滤:重点扫描常见配置文件路径,如.env、.json、.yml等,提高检测效率。

  4. 正则匹配:使用精心设计的正则表达式识别OpenAI API密钥格式,包括最新的sk-proj-和sk-svcacct-格式。

  5. 结果验证:对发现的密钥进行有效性验证,并记录状态。

  6. 数据存储:将结果保存在SQLite数据库中,便于后续查询和分析。

7. 结果查看:分析扫描数据

扫描结果保存在项目根目录的github.db SQLite数据库中。你可以使用任何SQLite数据库浏览器打开查看,如DB Browser for SQLite。

数据库包含两个主要表:

  • APIKeys:存储检测到的API密钥、状态和最后检查时间
  • URLs:存储包含密钥的GitHub URL地址

API密钥数据库结果 ChatGPT-API-Leakage数据库截图,显示不同状态的API密钥

密钥状态说明:

  • yes:有效的API密钥
  • invalid_api_key:无效的API密钥格式
  • insufficient_quota:密钥有效但额度不足

8. 实用技巧:提高扫描效率

以下技巧可帮助你获得更好的扫描效果:

  1. 合理设置关键词:根据实际需求调整关键词列表,避免过于宽泛导致结果过多。

  2. 分语言扫描:对不同编程语言分开扫描,可以获得更全面的结果,因为GitHub搜索有页数限制。

  3. 定期更新工具:项目会不断更新API密钥的正则表达式,以应对OpenAI密钥格式的变化。

  4. 注意速率限制:工具默认已考虑GitHub和OpenAI的速率限制,避免频繁请求导致账号被限制。

  5. 利用进度保存:工具会自动保存扫描进度,中断后可从上次位置继续。

9. 安全警示:为什么要保护API密钥?

API密钥如同数字身份证,一旦泄露可能导致:

  • 未经授权的API调用,产生意外费用
  • 敏感数据泄露
  • 账户被他人控制

GitHub已推出推送保护功能,当检测到敏感信息时会阻止代码推送:

GitHub推送保护 GitHub推送保护功能提示,防止API密钥意外泄露

作为开发者,应始终遵循API密钥保护最佳实践:

  • 使用环境变量存储密钥
  • 避免将密钥提交到代码仓库
  • 定期轮换密钥
  • 使用最小权限原则配置API密钥

10. 常见问题:解决使用难题

Q: 为什么工具使用Selenium而不是GitHub Search API?

A: 因为GitHub官方API不支持正则表达式搜索,而网页版搜索支持。使用Selenium可以实现更精准的正则匹配,提高密钥检测率。

Q: 为什么要限制编程语言搜索范围?

A: 由于GitHub搜索结果有页数限制(通常前5页),通过限制编程语言可以拆分搜索结果,获得更多潜在密钥。

Q: 扫描到的API密钥为什么可能无法使用?

A: 截图中的API密钥仅用于演示工具功能,实际密钥可能在几小时或几天内失效。建议使用工具扫描自己的代码库,而不是依赖示例密钥。

Q: 如何避免我的API密钥被此类工具扫描到?

A: 启用GitHub的密钥扫描和推送保护功能,使用环境变量或密钥管理服务,避免在代码中硬编码密钥。

总结

ChatGPT-API-Leakage是一款功能强大的安全工具,不仅能帮助开发者发现GitHub上泄露的OpenAI API密钥,更重要的是提高安全意识,养成良好的密钥管理习惯。通过本指南的10个步骤,你已经掌握了工具的安装、配置、使用和结果分析方法。

记住,安全是一个持续过程,定期扫描和更新保护措施才能有效防范API密钥泄露风险。

【免费下载链接】ChatGPT-API-Leakage Scan GitHub for available OpenAI API Keys 【免费下载链接】ChatGPT-API-Leakage 项目地址: https://gitcode.com/gh_mirrors/ch/ChatGPT-API-Leakage

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐