RuleForge-SAST 支持 PHP、Python 和 Java 源码扫描,能够自动识别代码语言、执行匹配的安全规则、展示漏洞详情,并结合 AI 生成修复建议,再通过 Semgrep 对修改后的代码进行二次验证。
多语言代码扫描:支持 PHP、Python 和 Java,自动识别文件语言并匹配对应的 Semgrep 规则,可进行全规则或指定规则扫描。 漏洞结果分析:展示漏洞等级、CWE、文件位置、相关代码片段、风险说明和修复建议。 扫描历史管理:保存真实扫描记录,便于回顾扫描结果和问题变化。 AI 辅助修复:对扫描结果进行通俗解释,并生成针对性的代码修复建议。 修复效果验证:重新扫描修复后的代码,对比修复前后结果,判断漏洞是否已经消除。
请先安装:
- Python 3.10+
- Node.js 18+
- Git
检查版本:
python --version
node --version
npm --version
git --versiongit clone https://github.com/hey-Chloe/RuleForge-SAST.git
cd RuleForge-SASTpython -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
python -m pip install semgreppython3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
python -m pip install semgrep确认 Semgrep 可用:
semgrep --version项目需要同时运行后端和前端,请打开两个终端。
cd backend
python -m uvicorn api:app --reload --port 8000cd backend/frontend
npm install
npm run dev前端启动后,在浏览器中打开终端显示的地址,通常为:
http://localhost:5173
macOS / Linux 如果没有
python命令,请将命令替换为python3。
AI 修复建议功能使用 OpenRouter API。未配置 API Key 时,代码扫描、漏洞详情和扫描历史仍可正常使用。
复制环境变量模板:
Copy-Item .env.example .envmacOS / Linux:
cp .env.example .env编辑 .env:
OPENROUTER_API_KEY=
AI_MODEL=deepseek/deepseek-v4-flash
AI_DAILY_REQUEST_LIMIT=3
AI_DAILY_BUDGET_USD=0.03
AI_MAX_OUTPUT_TOKENS=1000
AI_MAX_CODE_CHARS=4000
AI_REQUEST_TIMEOUT_SECONDS=30视频展示:
- PHP、Python、Java 自动识别
- Semgrep 全规则扫描
- 漏洞详情与代码片段
- AI 漏洞解释与修复建议
- Patch 修复验证
- 真实扫描历史
推荐使用测试文件:
testcase/VulnerableController.java
- 上传源码,系统自动识别语言并加载对应规则。
- 使用全部适用规则进行 Semgrep 扫描。
- 查看漏洞等级、CWE、命中代码和修复建议。
- 生成 AI 漏洞解释与修复代码。
- 将修复代码交给 Patch Verify,查看验证结果和扫描历史。
上传源码
→ 自动识别语言
→ Semgrep 扫描
→ 漏洞详情
→ AI 修复建议
→ Patch 二次验证
→ 保存扫描历史
| 状态 | 含义 |
|---|---|
FIXED |
修复后当前规则不再检测到漏洞 |
NOT_FIXED |
修复后仍能检测到漏洞 |
NO_VULNERABILITY |
修复前未检测到对应漏洞 |
AI 建议仅供参考,只有经过 Semgrep 二次扫描后才会生成验证状态。
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\.venv\Scripts\Activate.ps1先确认虚拟环境已经激活,然后重新安装:
python -m pip install --upgrade semgrep
semgrep --version仍无法使用时,可以通过 pipx 安装:
python -m pip install --user pipx
python -m pipx ensurepath
pipx install semgrep后端启动后可访问:
http://127.0.0.1:8000/docs
- AI 修复建议仅供参考,不代表漏洞已经修复。
- Patch 验证结果由当前 Semgrep 规则判断。
- 未被规则检测到不代表代码绝对安全。
- 上传文件仅用于临时扫描。
- 临时文件使用唯一文件名并保留原始扩展名。
- 扫描结束或发生异常后,临时文件会自动删除。
- AI 功能只发送当前漏洞的代码片段,不发送完整项目。
- API Key 仅从后端环境变量读取。
- 前端不会保存、显示或返回 API Key。
- AI 请求带有缓存、每日次数限制和预算限制。
- SQLite 数据库文件不会提交到 Git 仓库。
本项目主要用于安全学习、静态代码分析研究和授权环境中的漏洞检测。
请勿将本项目用于未经授权的系统或代码分析。使用者应自行承担因错误使用而产生的责任。