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绕过, 网络安全, 自动化攻击, 行为生物识别, 设备指纹, 隐私保护, 零信任, 风控引擎