chavooosss/VaultScan
GitHub: chavooosss/VaultScan
一款支持多 AI 大模型协同审查的代码安全漏洞扫描工具,让开发者通过自带 API key 快速检测代码中的安全风险。
Stars: 0 | Forks: 0
# VaultScan
[](https://github.com/chavooosss/VaultScan/actions/workflows/tests.yml)
[](https://vaultscan-pxyt.onrender.com)
[](LICENSE)
[](https://www.python.org/)
VaultScan 是一款工具,让你能将 AI 指向你的代码并提问:“这里存在安全漏洞吗?”粘贴代码片段、上传文件/ZIP 压缩包,或提供 GitHub 仓库链接——VaultScan 会阅读代码,标记风险点(SQL 注入、XSS、机密信息泄露、弱验证等),并为你生成一份易读的报告。
**在线访问:https://vaultscan-pxyt.onrender.com · [体验免登录演示 →](https://vaultscan-pxyt.onrender.com/demo)**

## 它的意义是什么?
假设你写了一些代码,并且想知道“我应该检查一下这里是否存在安全问题吗?”,但聘请安全顾问又不太现实。VaultScan 正是为此而生:它将你的代码(或整个项目)展示给 AI,并列出其发现,每个问题都会标记严重程度(严重 / 高 / 中 / 低)。
它的独特之处在于:与其依赖单一模型,你可以在同一份代码上同时运行 Claude、ChatGPT 和 Gemini。每个模型都会独立进行审查,然后将审查结果合并为一份综合报告——这样就有三只不同的“眼睛”来审查同一份代码,你可以确切地看到哪个模型发现了什么。
## 功能
- **免登录演示** — [`/demo`](https://vaultscan-pxyt.onrender.com/demo) 让任何人都可以体验完整的 UI 并查看真实的示例报告,无需注册或提供 API key。
- **粘贴代码** — 粘贴代码片段即可直接分析。
- **上传文件 / ZIP** — 单个文件或包含多个文件的 ZIP 压缩包;VaultScan 会优先处理安全性最相关的文件。
- **GitHub 仓库分析** — 提供仓库 URL(公开仓库,或带有 token 的私有仓库),即可观看它逐个文件进行扫描并显示实时进度。
- **多 AI 支持** — 在 Claude (Anthropic)、ChatGPT (OpenAI) 和 Gemini (Google) 之间进行选择。
- **协作模式** — 同时选择多个 AI,它们的发现会被合并到单个报告中,每条发现都会标记出是由哪个(或哪些)模型发现的。
- **双语 UI (英语/土耳其语)** — 主题切换按钮旁边的语言切换按钮可以切换整个界面,*以及* AI 生成的分析报告本身:用英语提问,就会得到英文报告;土耳其语同理。
- **使用 Google 登录** — 这是使用该应用的必要条件。
- **自带 API key (BYOK)** — VaultScan 本身没有 AI key;每个用户在 `/settings` 中添加自己的 Claude/ChatGPT/Gemini key,该 key 将用于他们的分析。Key 会加密存储,永远不以明文形式显示。
- **导出报告** — 下载为 Markdown 或打印为 PDF。
- **分析历史** — `/history` 显示过往分析的报告(绝不包含底层的代码/文件/仓库内容);可随时在 `/settings` 中关闭此功能。
## 工作原理
1. 使用你的 Google 账号登录。
2. 从 `/settings` 为你想使用的任意 AI 提供商添加你自己的 API key(Claude 和 ChatGPT 的 key 是付费的——你需要在该账户上有账单/点数;Gemini 提供免费额度)。
3. 粘贴代码、上传文件或提供 GitHub 仓库链接。
4. 选择要运行的 AI。
5. VaultScan 会使用你自己的 key 将代码发送到你选择的提供商,并将响应转化为易读的 HTML 报告。
6. 如果你选择了多个 AI,结果会自动合并为一份综合报告。
## 在本地运行
```
git clone
cd VaultScan
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
```
复制 `.env.example` 为 `.env`:
```
cp .env.example .env
```
填入你自己的值:
| 变量 | 用途 |
|---|---|
| `GOOGLE_CLIENT_ID` / `GOOGLE_CLIENT_SECRET` | Google 登录(在 Google Cloud Console 中创建 OAuth Client ID) |
| `SESSION_SECRET` | 用于签名 session cookie 的随机字符串(例如 `python -c "import secrets; print(secrets.token_hex(32))"`) |
| `ENCRYPTION_KEY` | 用于在静态存储时加密用户的 AI API key(例如 `python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"`) |
| `DATABASE_URL` | 可选。如果未设置,默认使用本地 SQLite 文件 (`sqlite:///vaultscan.db`);生产环境运行在 Postgres (Neon) 上 |
VaultScan 本身没有 AI key——每个用户从应用内部 (`/settings`) 输入自己的 Claude/ChatGPT/Gemini key,因此你无需在 `.env` 中添加。
启动服务器:
```
uvicorn main:app --reload
```
在浏览器中打开 `http://localhost:8000`。
## 运行测试
```
pytest
```
测试使用它们自己隔离的数据库文件,绝不会触碰真实数据。CI 会在每次 push/PR 时通过 GitHub Actions (`.github/workflows/tests.yml`) 运行相同的测试套件。
## 技术栈
- **后端:** FastAPI (Python)
- **数据库:** SQLAlchemy — 生产环境使用 Postgres (Neon),本地开发使用 SQLite
- **认证:** Google OAuth (Authlib) + 签名的 session cookie
- **AI 提供商:** Anthropic (Claude)、OpenAI (ChatGPT)、Google (Gemini)
- **前端:** 原生 HTML/CSS/JavaScript(无框架,刻意保持简单),配有一个用于英语/土耳其语语言切换的小型 `i18n.js` 模块
- **CI:** GitHub Actions
## 项目结构
```
VaultScan/
├── main.py # FastAPI routes (analyze, upload, github, auth, API key management, etc.)
├── analyzer.py # Single/multi-AI analysis flow, result-merging logic
├── db.py # SQLAlchemy models (User, Analysis) and database helpers
├── auth.py # Google OAuth client
├── config.py # Reads environment variables / settings
├── prompts.py # System prompts sent to the AIs (English + Turkish)
├── i18n.py # Backend message catalog (English + Turkish), keyed off the X-Lang header
├── providers/ # One module per AI provider (claude/chatgpt/gemini)
├── static/ # Frontend (HTML/CSS/JS), including i18n.js and the /settings, /history pages
└── tests/ # pytest test suite
```
## 路线图
VaultScan 正在积极开发中。目前正在处理 / 计划中的工作:
- 更多 UI 优化
## 许可证
保留所有权利——详见 [LICENSE](LICENSE)。本源代码出于透明度和作品集目的公开;如需重用、重新分发或商业使用,需要获得书面许可。
## Türkçe (简要摘要)
VaultScan, kodunu (veya bir GitHub reponu) yapay zekâya gösterip güvenlik açığı olup olmadığını sorduğun bir araç. Tek bir AI'a değil, istersen Claude, ChatGPT ve Gemini'ye aynı anda sorabilirsin — bulgular tek bir ortak raporda birleşir. Her kullanıcı kendi API key'ini ekler (BYOK), key'ler şifreli saklanır. Arayüz hem Türkçe hem İngilizce — sağ üstteki dil butonuyla değiştirebilirsin, AI'nın ürettiği rapor da seçtiğin dile göre gelir. Canlı adres: https://vaultscan-pxyt.onrender.com
标签:AI代码审计, AV绕过, DLL 劫持, FastAPI, 多模型集成, 大语言模型, 测试用例, 逆向工具, 错误基检测, 静态代码分析