Gnani7s/CredShield-AI

GitHub: Gnani7s/CredShield-AI

一个基于 AI 评分引擎的多账号信用滥用检测系统,通过设备指纹、行为生物特征和 IP 情报综合识别欺诈注册。

Stars: 0 | Forks: 0

# CredShield AI 🛡️ **一位用户。一个身份。零信用滥用。** 基于 AI 的多账户信用滥用检测,结合了真实设备指纹识别、行为生物特征、IP 情报以及加权欺诈评分引擎。 ## 🚀 15 分钟内部署 ### 第 1 步 — 获取免费 API 密钥 #### A) Supabase (Database + Auth) — 免费 1. 访问 **https://supabase.com** → 免费注册 2. 点击 **New Project** → 命名为 `credshield-ai` 3. 等待约 2 分钟完成配置 4. 前往 **Settings → API** 5. 复制: - `Project URL` → `NEXT_PUBLIC_SUPABASE_URL` - `anon public` 密钥 → `NEXT_PUBLIC_SUPABASE_ANON_KEY` - `service_role` 密钥 → `SUPABASE_SERVICE_ROLE_KEY` 6. 前往 **SQL Editor** → 粘贴 `supabase/migrations/001_schema.sql` 的全部内容 → **Run** #### B) JWT Secret — 免费(自行生成) 在任何终端中运行: ``` node -e "console.log(require('crypto').randomBytes(64).toString('hex'))" ``` 复制输出内容 → `JWT_SECRET` #### C) IPQualityScore (VPN/Tor/Proxy Detection) — 免费 1. 访问 **https://www.ipqualityscore.com/create-account** 2. 免费注册(每月 5,000 次免费查询) 3. 前往 **Dashboard → API Keys** 4. 复制您的密钥 → `IPQS_API_KEY` ### 第 2 步 — 部署到 Vercel #### 选项 A: GitHub 一键部署(推荐) 1. 将此项目推送到 GitHub 仓库: git init git add . git commit -m "Initial CredShield AI" git remote add origin https://github.com/YOUR_USERNAME/credshield-ai.git git push -u origin main 2. 前往 **https://vercel.com** → **New Project** → 导入您的仓库 3. 添加环境变量 (Settings → Environment Variables): | 变量 | 值 | |----------|-------| | `NEXT_PUBLIC_SUPABASE_URL` | 你的 Supabase Project URL | | `NEXT_PUBLIC_SUPABASE_ANON_KEY` | 你的 Supabase anon key | | `SUPABASE_SERVICE_ROLE_KEY` | 你的 Supabase service role key | | `JWT_SECRET` | 你的 64 位随机十六进制字符串 | | `IPQS_API_KEY` | 你的 IPQualityScore key (可选) | | `NEXT_PUBLIC_APP_URL` | `https://your-app.vercel.app` | 4. 点击 **Deploy** → 完成! #### 选项 B: Vercel CLI ``` npm i -g vercel vercel # 按照提示操作,然后: vercel env add NEXT_PUBLIC_SUPABASE_URL vercel env add NEXT_PUBLIC_SUPABASE_ANON_KEY vercel env add SUPABASE_SERVICE_ROLE_KEY vercel env add JWT_SECRET vercel env add IPQS_API_KEY vercel --prod ``` ### 第 3 步 — 本地开发 ``` # Clone 并 install git clone https://github.com/YOUR_USERNAME/credshield-ai.git cd credshield-ai npm install # Copy env file 并填入你的 keys cp .env.example .env.local # 使用你的 keys 编辑 .env.local # 运行 dev server npm run dev # 打开 http://localhost:3000 ``` ## 🔐 管理员访问 默认管理员凭据(首次登录后请更改!): - **Email:** `admin@credshield.ai` - **Password:** `Admin@CredShield2024` 要更改管理员密码,请在 Supabase SQL Editor 中运行: ``` -- First generate a new bcrypt hash: -- node -e "require('bcryptjs').hash('YourNewPassword', 12).then(console.log)" UPDATE users SET password_hash = 'YOUR_NEW_BCRYPT_HASH' WHERE email = 'admin@credshield.ai'; ``` ## 🏗️ 架构 ``` credshield-ai/ ├── app/ │ ├── api/ │ │ ├── auth/ │ │ │ ├── register/route.ts ← Registration + fraud check │ │ │ ├── login/route.ts ← Login + re-fingerprint check │ │ │ └── logout/route.ts │ │ └── admin/ │ │ ├── stats/route.ts ← Live dashboard stats │ │ ├── users/route.ts ← Paginated user list │ │ ├── logs/route.ts ← Fraud event logs │ │ └── block/route.ts ← Block/unblock users │ ├── page.tsx ← Landing page │ ├── register/page.tsx ← Registration with live fingerprinting │ ├── login/page.tsx │ ├── dashboard/page.tsx ← User risk profile │ ├── admin/ ← Admin dashboard │ └── blocked/page.tsx ← Blocked account page ├── lib/ │ ├── fraud-engine.ts ← Core fraud scoring logic │ ├── ip-intelligence.ts ← IP/VPN/Tor lookup │ ├── auth.ts ← JWT + session management │ └── supabase.ts ← DB client ├── hooks/ │ ├── useFingerprint.ts ← Real device fingerprinting │ └── useBehavior.ts ← Keystroke/mouse biometrics ├── middleware.ts ← Route protection ├── supabase/migrations/ │ └── 001_schema.sql ← Complete DB schema └── types/index.ts ``` ## 🔬 欺诈检测的工作原理 ### 评分引擎 (0–100) | 信号 | 权重 | 检测方法 | |--------|--------|-----------------| | 相同设备指纹 | +40 | Canvas、Audio、WebGL、字体哈希组合 | | 相同 Canvas 哈希 | +15 | HTML5 Canvas 渲染指纹 | | 相同 Audio 指纹 | +10 | Web Audio API 振荡器分析 | | Tor 出口节点 | +30 | IPQualityScore / ASN 分析 | | 检测到 VPN | +15 | IPQualityScore + 已知 VPN ASN | | Proxy/匿名器 | +12 | IPQualityScore | | 托管/数据中心 IP | +6 | ASN 关键词匹配 | | 高威胁 IP (分数≥75) | +25 | IPQualityScore fraud_score | | 快速注册 (24小时内4次以上) | +20 | 对 ip_address + created_at 进行 Supabase 查询 | | 同一 IP 下 2–3 个账户 | +12 | 同上 | | 子网集群 (/24 内有 5 个以上) | +8 | CIDR 范围查询 | | 一次性邮箱 | +18 | 1000+ 个已知域名 | | 隐私邮箱 (ProtonMail 等) | +8 | 已知隐私服务商 | | 行为匹配 (相似度≥85%) | +20 | 击键时间对比欺诈特征库 | ### 阈值 - **分数 ≥ 70** 或 **检测到 Tor** → 自动拦截,拒绝发放信用额度 - **分数 40–69** → 标记,减少信用额度 (25),持续监控 - **分数 20–39** → 低风险,部分信用额度 (75) - **分数 0–19** → 干净,全额信用额度 (100) ### 设备指纹信号 - **Canvas 指纹** — GPU 在每台设备上渲染文本和形状的方式会有所不同 - **WebGL 渲染器** — 通过 `WEBGL_debug_renderer_info` 提取 GPU 模型 - **Audio 指纹** — OfflineAudioContext 振荡器处理差异 - **字体检测** — 基于 Canvas 的字体规格对比 (16 种字体) - **FingerprintJS** — 聚合的访问者 ID (开源库) - **屏幕分辨率、色彩深度、CPU 核心数、设备内存、时区** ## 📱 移动端支持 在所有屏幕尺寸下完美适配: - 320px (小屏手机) 到 1920px (大屏桌面) - 触控友好的 UI 元素 (最小 44px 点击目标) - 行为追踪在移动端同样有效 (触摸事件) ## 🔒 安全性 - 密码使用 **bcrypt** 加密哈希 (rounds=12) - 会话通过 **HTTP-only cookies** 管理 (不使用 localStorage) - JWT 使用 **HS256** 签名,7 天有效期 - 所有管理员 API 路由受中间件保护 - 启用 Supabase **Row Level Security** - Service role key 绝不暴露给客户端 - 所有 API 路由通过 **Zod** 进行输入验证 - 从 Vercel/Cloudflare headers 中提取真实 IP (而非代理 IP) ## 📊 技术栈 | 层级 | 技术 | |-------|-----------| | Framework | Next.js 14 (App Router) | | Styling | Tailwind CSS | | Database | Supabase (PostgreSQL) | | Auth | JWT + HTTP-only cookies | | Fingerprinting | FingerprintJS v4 (开源) + 自定义信号 | | Charts | Recharts | | Animations | Framer Motion | | IP Intelligence | ipapi.co (免费) + IPQualityScore (免费层) | | Deployment | Vercel (免费层) | | Validation | Zod | ## 🧪 测试系统 1. **正常注册** → 查看您的风险分数和信用额度 2. **使用相同设备再次注册** → 被拦截 (设备指纹匹配) 3. **开启 VPN 并注册** → 被标记或拦截 4. **使用一次性邮箱** → 风险分数升高 5. **管理员面板** → 在 `/admin` 查看所有实时事件 ## 📄 许可证 MIT — 可免费用于学术和商业用途。 为 CredShield AI 项目而构建。"一位用户。一个身份。零信用滥用。"
标签:IPQualityScore, IP风险评估, JSONLines, JWT身份验证, OSV, SaaS, Supabase, Vercel, VPN检测, 人工智能, 代理检测, 信用滥用检测, 加权欺诈评分, 反作弊, 反欺诈, 多账号检测, 快速部署, 测试用例, 用户模式Hook绕过, 网络安全, 自动化攻击, 行为生物识别, 设备指纹, 隐私保护, 零信任, 风控引擎