Leonojiaku/ScamShield

GitHub: Leonojiaku/ScamShield

ScamShield AI 是一个结合 AI 语义分析、社区举报与安全启发式检测的反诈骗平台,帮助非洲用户在遭受网络诈骗前识别和规避风险。

Stars: 0 | Forks: 0

# ScamShield AI — 高级 AI 驱动的反诈骗平台 ScamShield AI 是一个尖端的网络安全和威胁情报平台,旨在保护非洲各地的用户,防止他们在遭受网络诈骗时蒙受经济损失。 该生态系统集成了**人工智能**、**网络安全启发式算法**和**社区威胁报告**,可扫描可疑的电话号码、银行账户、加密货币钱包以及高仿网站链接。 ## 🚀 核心功能 * **AI 消息扫描器**:专业的内容解析器,利用 Google Gemini 分析 WhatsApp、Telegram、SMS 或电子邮件中是否存在社会工程学诱饵、恐慌策略、虚假赠品以及伪造的银行通知警报。 * **信任情报查询**:针对银行、电话、钱包和链接进行公开目录检查。包含社区日志、严格的风险警告提示以及内置的争议申诉功能。 * **截图 OCR 审计工具**:使用客户端 Tesseract.js 处理技术,直接从上传的交易回单照片或消息截图中解析文本内容。 * **安全的多层账户体系**:采用高性能的 Argon2 密码哈希、session cookie、JWT 密钥以及 TOTP 双因素认证 (2FA) 构建。 * **互动学习中心**:提供带有进度记录的学院模块和单项选择题 (MCQs),在获得 100% 分数时授予证书徽章。 * **管理员审计控制面板**:为管理员提供队列审核工具,用于批准/拒绝社区报告、处理争议申诉以及分配版主团队角色。 ## 🛠️ 技术栈 * **前端**:React, TypeScript, Tailwind CSS, Chart.js, React Query, Framer Motion, Tesseract.js * **后端**:Node.js, Express, TypeScript, Argon2 Hashing, JWT * **数据库**:PostgreSQL * **集成服务**:Google Gemini API * **编排与 DevOps**:Docker, Docker Compose, GitHub Actions CI/CD ## ⚙️ 环境配置 在 `backend/` 目录下创建一个 `.env` 文件,或者在容器运行时传入以下配置: ``` PORT=3000 DATABASE_URL=postgres://scamshield_user:scamshield_secure_pass_2026@db:5432/scamshield_db JWT_SECRET=scamshield_ai_jwt_cyber_signing_secret_9988 GEMINI_API_KEY=your_gemini_api_key_here ``` *注意:如果未配置 `GEMINI_API_KEY` 或 `DATABASE_URL`,ScamShield AI 会动态回退到基于关键词分析的启发式算法以及内存模拟存储,从而允许进行离线开发和测试验证。* ## 🐳 快速开始(本地 Docker Compose 部署) 使用一条命令即可启动包括数据库容器、API 服务器和 React 客户端在内的完整技术栈: ``` docker-compose up --build ``` 访问本地 endpoint: * **前端客户端**:`http://localhost:5173` * **后端健康检查**:`http://localhost:3000/api/health` ## 📊 核心 API Endpoint ### 🔐 认证 API (`/api/auth`) | 方法 | Endpoint | 描述 | Payload / 参数 | | :--- | :--- | :--- | :--- | | `POST` | `/register` | 注册新用户档案 | `{ email, password, fullName }` | | `POST` | `/login` | 认证用户档案 | `{ email, password }` | | `POST` | `/verify-email` | 验证注册 token | `{ email, token }` | | `POST` | `/2fa/setup` | 生成 TOTP 密钥和二维码 | *需要 JWT token* | | `POST` | `/2fa/verify` | 激活 TOTP 2FA 状态 | `{ code }` | | `POST` | `/2fa/verify-login` | 验证 TOTP 验证码以完成登录 | `{ userId, code }` | | `GET` | `/me` | 获取当前活跃用户的详细资料 | *需要 JWT token* | ### 🔍 威胁扫描 API (`/api/scans`) | 方法 | Endpoint | 描述 | Payload / 参数 | | :--- | :--- | :--- | :--- | | `POST` | `/message` | 扫描消息内容 | `{ text }` | | `POST` | `/website` | 审计链接 / 域名安全性 | `{ url }` | | `POST` | `/screenshot` | 审计通过截图 OCR 解析出的文本 | `{ text }` | | `POST` | `/qr` | 解码并审计 QR 码指向的目标地址 | `{ payload }` | | `POST` | `/email` | 扫描发件人、邮件头和正文 | `{ sender, subject, body, headers }` | | `GET` | `/history` | 获取已认证用户的扫描日志 | *需要 JWT token* | ### 🗄️ 威胁情报 API (`/api/intel`) | 方法 | Endpoint | 描述 | Payload / 参数 | | :--- | :--- | :--- | :--- | | `GET` | `/search` | 搜索综合目录数据 | `?type=phone&value=+23480...` | | `POST` | `/report` | 提交社区诈骗日志 | `{ type, targetValue, details, category, evidenceUrl }` | | `POST` | `/reports/:id/vote`| 为报告的实用性点赞 | *参数:报告 ID* | | `POST` | `/appeal` | 提交针对争议列表的申诉 | `{ intelId, reason, contactEmail }` | | `GET` | `/feed` | 获取最新的警报和诈骗新闻 | 无 | ### 👑 管理操作 API (`/api/admin`) *所有管理路由均需要版主/管理员访问权限保护。* | 方法 | Endpoint | 描述 | Payload / 参数 | | :--- | :--- | :--- | :--- | | `GET` | `/stats` | 获取综合指标统计数 | 无 | | `GET` | `/reports` | 获取待处理的报告队列 | `?status=pending` | | `POST` | `/reports/:id/status`| 审核报告(批准/拒绝) | `{ status: 'approved' }` | | `GET` | `/appeals` | 获取活跃的争议申诉队列 | 无 | | `POST` | `/appeals/:id/resolve`| 处理争议(批准/拒绝) | `{ resolution: 'approved', adminNotes }` | | `GET` | `/users` | 获取已注册用户列表 | 无 | | `POST` | `/users/:id/role`| 修改用户访问权限角色(仅限管理员)| `{ role: 'moderator' }` | ## 🧪 运行自动化测试 在本地运行后端单元测试和路由集成测试: ``` cd backend npm install npm test ``` ## 🛡️ 公平运营与免责声明 ScamShield AI 重视准确性与公正性: 1. **信誉评分**:查询结果汇总自社区提交的内容,代表综合信誉评分。这不构成法律上的定罪声明。 2. **争议申诉**:每个被标记的目标都会显示一个申诉提交表单。获准的争议申诉将清除风险评级、记录争议情况,并恢复清白评级。 3. **认证与数据安全**:采用 Argon2 哈希加密、强制 HTTPS 传输、安全的 JWT cookie 以及速率限制,以防止枚举攻击。
标签:AI内容分析, MITM代理, OCR识别, 反欺诈, 威胁情报, 开发者工具, 测试用例, 自动化攻击, 请求拦截