68xx/Smart-Contract-Vulnerability-Scanner

GitHub: 68xx/Smart-Contract-Vulnerability-Scanner

一个基于 Web 的以太坊智能合约漏洞扫描器,整合 Slither 静态分析与 Gemini AI 解释,帮助开发者快速发现并理解 Solidity 合约中的安全隐患。

Stars: 0 | Forks: 0

# 智能合约漏洞扫描器 一个基于 Web 的 Ethereum 智能合约漏洞扫描器,作为毕业设计项目 (FYP2) 构建。 ## 概述 将 [Slither](https://github.com/crytic/slither) 静态分析器封装在 Web 界面中,添加了 OWASP 智能合约 Top 10 2026 分类、按比例的风险评分系统,以及通过 Google Gemini 提供的 AI 漏洞解释功能。 ## 技术栈 | 层级 | 技术 | |-------|-----------| | 前端 | React | | 后端 | Python / Flask | | 数据库 | MySQL | | 分析引擎 | Slither | | AI 解释 | Google Gemini API | ## 功能 - 上传 `.sol` 文件或直接粘贴 Solidity 代码 - 基于 Slither 的静态漏洞检测 - OWASP 智能合约 Top 10 2026 映射 - 按比例的风险评分(初始为 100 分,根据严重程度扣分) - 针对每个检测结果的 AI 生成通俗语言解释 - 扫描历史记录与并排比较 - PDF 报告下载 - 用户认证(通过 httpOnly cookies 实现 JWT) - 扫描 endpoint 的速率限制 ## 项目结构 ``` smart-contract-scanner/ ├── backend/ │ ├── app.py # Flask app entry point │ ├── requirements.txt # Python dependencies │ ├── pytest.ini # Test config │ ├── dashboard_metrics.sql # SQL for dashboard stats │ ├── routes/ │ │ ├── auth.py # Register / login / logout │ │ ├── scanner.py # Scan endpoint + risk scoring │ │ └── gemini.py # Gemini AI explanation │ └── tests/ │ ├── conftest.py │ ├── test_auth.py │ ├── test_scanner.py │ ├── test_ai.py │ └── test_report.py └── frontend/ ├── package.json ├── public/ └── src/ ├── App.js ├── ScanContext.js # Global scan state └── pages/ ├── Login.jsx ├── Register.jsx ├── Scanner.jsx ├── History.jsx └── Dashboard.jsx ``` ## 设置说明 ### 后端 ``` cd backend python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate pip install -r requirements.txt pip install slither-analyzer ``` 在 `backend/` 目录下创建一个 `.env` 文件: ``` DB_HOST=localhost DB_USER=your_db_user DB_PASSWORD=your_db_password DB_NAME=smart_contract_scanner GEMINI_API_KEY=your_gemini_api_key JWT_SECRET_KEY=your_jwt_secret ``` 运行: ``` python app.py ``` ### 前端 ``` cd frontend npm install npm start ``` ### 运行测试 ``` cd backend pytest --cov=. --cov-report=term-missing ``` ## 环境变量 | 变量 | 描述 | |----------|-------------| | `DB_HOST` | MySQL 主机 | | `DB_USER` | MySQL 用户名 | | `DB_PASSWORD` | MySQL 密码 | | `DB_NAME` | 数据库名称 | | `GEMINI_API_KEY` | Google Gemini API 密钥 | | `JWT_SECRET_KEY` | 用于 JWT 签名的密钥 |
标签:Ethereum, Flask, React, Syscalls, Web安全, 云安全监控, 实时处理, 密码管理, 智能合约, 自定义脚本, 蓝队分析, 逆向工具, 配置审计, 静态分析