- 核心新增: ICON_CLICK(PNG图标方案,预渲染资源)/SCRATCH/JIGSAW/CURVE_SLIDER(V1-V3)/ANGLE/CURVE_DRAW/WORD_ORDER_CLICK/PROOF_OF_WORK 等生成器 - 图标点选: classpath PNG 加载替代运行时字体渲染(Linux容器无emoji字体),提示条图作为 templateImage 返回前端 - 新增模块: crypto(AES+RSA)/obfuscator(背景乱序/噪声/扭曲)/risk(风控/IP黑名单/限流)/site(站点管理)/ml(轨迹规则引擎) - 平台后端: 站点管理/验证码API(generate/verify/secondary-verify)/统计/ML轨迹学习 - 前端SDK: TPCaptcha兼容,支持全部新型号渲染与交互 - 工具: tools/icon-render 图标预渲染工具
103 lines
3.4 KiB
Markdown
103 lines
3.4 KiB
Markdown
# AGENTS.md - tianai-captcha-enhanced
|
|
|
|
## 项目概述
|
|
|
|
基于 tianai-captcha 1.5.5 开源版的增强版行为验证码,目标是复现增强版全部功能并自建验证码服务平台。
|
|
|
|
## 技术栈
|
|
|
|
| 组件 | 版本 |
|
|
|------|------|
|
|
| JDK | 21 (Microsoft OpenJDK 21.0.11 LTS) |
|
|
| Maven | 3.9.16 |
|
|
| Spring Boot | 3.4.5 |
|
|
| Lombok | 1.18.42 (后续逐步移除) |
|
|
| SLF4J | 2.0.17 |
|
|
| ONNX Runtime | 1.22.0 (ML推理,待引入) |
|
|
|
|
## 环境路径
|
|
|
|
```powershell
|
|
$env:JAVA_HOME = "C:\Users\USER879511\.jdks\ms-21.0.11"
|
|
$env:PATH = "$env:JAVA_HOME\bin;$env:PATH"
|
|
$Maven = "D:\Middleware\environment\apache-maven-3.9.16\bin\mvn.cmd"
|
|
```
|
|
|
|
## 构建 & 验证
|
|
|
|
```powershell
|
|
$env:JAVA_HOME = "C:\Users\USER879511\.jdks\ms-21.0.11"
|
|
& "D:\Middleware\environment\apache-maven-3.9.16\bin\mvn.cmd" -f "D:\tianai-captcha-enhanced\pom.xml" compile
|
|
& "D:\Middleware\environment\apache-maven-3.9.16\bin\mvn.cmd" -f "D:\tianai-captcha-enhanced\pom.xml" package -DskipTests
|
|
```
|
|
|
|
## 项目版本
|
|
|
|
从 `1.5.5` 升级到 `2.0.0-SNAPSHOT`,表示这是增强版的开发版本。
|
|
|
|
## 模块结构
|
|
|
|
```
|
|
tianai-captcha-enhanced/
|
|
├── tianai-captcha/ # 核心模块 (JDK 21, Spring Boot 3.4)
|
|
├── tianai-captcha-springboot-starter/ # Spring Boot Starter (3.4.5)
|
|
├── tianai-captcha-web-sdk/ # 前端SDK (待增强)
|
|
├── tianai-captcha-platform/ # 管理平台后端 (待创建)
|
|
└── tianai-captcha-platform-ui/ # 管理平台前端 (待创建)
|
|
```
|
|
|
|
## 增强版功能计划
|
|
|
|
### 验证码类型 (对标官网16种)
|
|
|
|
| 类型 | 常量 | 开源版 | 增强版 | 优先级 |
|
|
|------|------|:------:|:------:|:------:|
|
|
| 滑块验证 | SLIDER | ✅ | ✅ | P0 |
|
|
| 滑块验证V2 | SLIDER_V2 | ❌ | 🔜 | P1 |
|
|
| 曲线滑块 | CURVE_SLIDER | ❌ | 🔜 | P1 |
|
|
| 曲线滑块V2 | CURVE_SLIDER_V2 | ❌ | 🔜 | P2 |
|
|
| 曲线滑块V3 | CURVE_SLIDER_V3 | ❌ | 🔜 | P2 |
|
|
| 旋转验证 | ROTATE | ✅ | ✅ | P0 |
|
|
| 滑动还原 | CONCAT | ✅ | ✅ | P0 |
|
|
| 角度验证 | ANGLE | ❌ | 🔜 | P1 |
|
|
| 刮刮乐 | SCRATCH | ❌ | 🔜 | P1 |
|
|
| 文字点选 | WORD_IMAGE_CLICK | ✅ | ✅ | P0 |
|
|
| 图标点选 | ICON_CLICK | ❌ | 🔜 | P1 |
|
|
| 语序点选 | WORD_ORDER_CLICK | ❌ | 🔜 | P1 |
|
|
| 乱序拼图 | JIGSAW | ❌ | 🔜 | P1 |
|
|
| 曲线绘制 | CURVE_DRAW | ❌ | 🔜 | P2 |
|
|
| 工作量证明 | PROOF_OF_WORK | ❌ | 🔜 | P2 |
|
|
| 随机 | RANDOM | ✅ | ✅ | P0 |
|
|
|
|
### 增强功能 (对标付费版10项)
|
|
|
|
| 功能 | 优先级 | 状态 |
|
|
|------|:------:|:----:|
|
|
| 全新加密算法 (AES-256 + RSA-4096 + SHA256) | P0 | 🔜 |
|
|
| ML轨迹校验器 (规则引擎 + ONNX) | P0 | 🔜 |
|
|
| 位置校验 (动态容错) | P0 | ✅ 已有基础 |
|
|
| 验证码背景乱序 | P1 | 🔜 |
|
|
| 差异校验 (防重放) | P1 | 🔜 |
|
|
| 请求次数校验 (滑动窗口限流) | P1 | 🔜 |
|
|
| 点选类图片背景扭曲 | P1 | 🔜 |
|
|
| IP禁用 | P1 | 🔜 |
|
|
| 轨迹相似性校验 (DTW) | P2 | 🔜 |
|
|
| 轨迹段落区分 | P2 | 🔜 |
|
|
|
|
### 平台化功能
|
|
|
|
| 功能 | 状态 |
|
|
|------|:----:|
|
|
| 站点管理 (SiteKey/SecretKey) | 🔜 |
|
|
| verifyToken 一次性消费 | 🔜 |
|
|
| 前端SDK (兼容TPCaptcha API) | 🔜 |
|
|
| 管理后台 | 🔜 |
|
|
| 统计监控 | 🔜 |
|
|
|
|
## 编码规范
|
|
|
|
- 包结构遵循开源版: application/generator/validator/resource/interceptor/cache/common
|
|
- 新增包: crypto/obfuscator/risk/site/ml
|
|
- API 响应统一使用 ApiResponse<T>
|
|
- 暂时保留 Lombok,后续逐步替换为手写 getter/setter
|