chavooosss/VaultScan

GitHub: chavooosss/VaultScan

一款支持多 AI 大模型协同审查的代码安全漏洞扫描工具,让开发者通过自带 API key 快速检测代码中的安全风险。

Stars: 0 | Forks: 0

# VaultScan [![测试](https://github.com/chavooosss/VaultScan/actions/workflows/tests.yml/badge.svg)](https://github.com/chavooosss/VaultScan/actions/workflows/tests.yml) [![在线演示](https://img.shields.io/badge/demo-live-brightgreen)](https://vaultscan-pxyt.onrender.com) [![许可证](https://img.shields.io/badge/license-All%20Rights%20Reserved-blue)](LICENSE) [![Python](https://img.shields.io/badge/python-3.12-blue)](https://www.python.org/) VaultScan 是一款工具,让你能将 AI 指向你的代码并提问:“这里存在安全漏洞吗?”粘贴代码片段、上传文件/ZIP 压缩包,或提供 GitHub 仓库链接——VaultScan 会阅读代码,标记风险点(SQL 注入、XSS、机密信息泄露、弱验证等),并为你生成一份易读的报告。 **在线访问:https://vaultscan-pxyt.onrender.com · [体验免登录演示 →](https://vaultscan-pxyt.onrender.com/demo)** ![VaultScan demo — selecting an example, AI analysis running, and the merged multi-model report appearing with a severity bar and provider tags](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/259cbfaf77174231.gif) ## 它的意义是什么? 假设你写了一些代码,并且想知道“我应该检查一下这里是否存在安全问题吗?”,但聘请安全顾问又不太现实。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, 多模型集成, 大语言模型, 测试用例, 逆向工具, 错误基检测, 静态代码分析