备份: 完整开发状态(含反混淆脚本和临时文件)
This commit is contained in:
257
docs/PLAN_3.0_MITM.md
Normal file
257
docs/PLAN_3.0_MITM.md
Normal file
@@ -0,0 +1,257 @@
|
||||
# CursorPro 3.0 - MITM 代理方案计划
|
||||
|
||||
> 状态: **规划中** (暂不启动)
|
||||
> 优先级: 低
|
||||
> 前置条件: 2.0 稳定运行后再考虑
|
||||
|
||||
---
|
||||
|
||||
## 一、目标
|
||||
|
||||
实现**真正的无感换号** - 请求级别自动切换账号,用户无需重启Cursor
|
||||
|
||||
---
|
||||
|
||||
## 二、当前方案 (2.0) vs 目标方案 (3.0)
|
||||
|
||||
| 特性 | 2.0 (当前) | 3.0 (MITM) |
|
||||
|-----|-----------|------------|
|
||||
| 换号方式 | 写Token到本地 | 请求转发 |
|
||||
| 需要重启 | 是 | 否 |
|
||||
| 切换粒度 | 会话级别 | 请求级别 |
|
||||
| 技术难度 | 低 | 高 |
|
||||
| 用户感知 | 有感 | 无感 |
|
||||
| 检测风险 | 低 | 中高 |
|
||||
|
||||
---
|
||||
|
||||
## 三、技术方案
|
||||
|
||||
### 方案A: 本地代理 + Hosts劫持
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ │
|
||||
│ [Cursor] ──→ api2.cursor.sh (被hosts指向127.0.0.1) │
|
||||
│ │ │
|
||||
│ ▼ │
|
||||
│ [本地代理服务] (127.0.0.1:443) │
|
||||
│ │ │
|
||||
│ ├─── 检查当前账号额度 │
|
||||
│ ├─── 选择最优账号 │
|
||||
│ ├─── 替换请求中的Token │
|
||||
│ │ │
|
||||
│ ▼ │
|
||||
│ [真实 api2.cursor.sh] │
|
||||
│ │ │
|
||||
│ ▼ │
|
||||
│ 返回结果给 Cursor │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
|
||||
实现步骤:
|
||||
1. 开发本地代理服务 (Node.js/Go)
|
||||
2. 生成自签名CA证书
|
||||
3. 修改系统hosts文件
|
||||
4. 用户安装CA证书到系统信任
|
||||
|
||||
优点:
|
||||
- 完全透明,Cursor无需修改
|
||||
- 请求级别换号
|
||||
|
||||
缺点:
|
||||
- 需要用户安装CA证书 (用户可能不信任)
|
||||
- 需要管理员权限修改hosts
|
||||
- HTTPS证书处理复杂
|
||||
```
|
||||
|
||||
### 方案B: Cursor配置修改
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ │
|
||||
│ 修改 Cursor 的 API 端点配置 │
|
||||
│ │
|
||||
│ 可能的配置位置: │
|
||||
│ 1. Cursor 安装目录下的配置文件 │
|
||||
│ 2. Electron app.asar 中的硬编码 │
|
||||
│ 3. 环境变量 │
|
||||
│ │
|
||||
│ 修改后: │
|
||||
│ 原: https://api2.cursor.sh │
|
||||
│ 改: https://proxy.ourserver.com │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
|
||||
需要研究:
|
||||
1. Cursor 是否有配置文件指定 API 地址
|
||||
2. 是否可以通过环境变量覆盖
|
||||
3. 修改 app.asar 的可行性
|
||||
|
||||
优点:
|
||||
- 不需要CA证书
|
||||
- 不需要修改hosts
|
||||
|
||||
缺点:
|
||||
- Cursor 更新后可能失效
|
||||
- 需要深入研究 Cursor 内部实现
|
||||
```
|
||||
|
||||
### 方案C: 云端代理集群
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────┐
|
||||
│ │
|
||||
│ [用户Cursor] ──→ [我们的云端代理] ──→ [Cursor官方API] │
|
||||
│ │ │
|
||||
│ ├── 负载均衡 │
|
||||
│ ├── 动态IP池 │
|
||||
│ ├── 账号池管理 │
|
||||
│ └── 请求级换号 │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────┘
|
||||
|
||||
需要:
|
||||
1. 多台服务器做代理集群
|
||||
2. 动态住宅IP代理服务
|
||||
3. 高并发处理能力
|
||||
|
||||
优点:
|
||||
- 集中管理,用户端改动最小
|
||||
- 可以做更多优化
|
||||
|
||||
缺点:
|
||||
- 服务器成本高
|
||||
- 延迟增加
|
||||
- 需要用户配置代理或修改Cursor
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 四、Cursor API 端点分析 (待研究)
|
||||
|
||||
需要劫持的主要端点:
|
||||
|
||||
```
|
||||
# 认证相关
|
||||
POST https://api2.cursor.sh/auth/...
|
||||
|
||||
# AI 对话
|
||||
POST https://api2.cursor.sh/aiserver.v1.AiService/StreamChat
|
||||
POST https://api2.cursor.sh/aiserver.v1.AiService/...
|
||||
|
||||
# 使用量查询
|
||||
GET https://api2.cursor.sh/usage/...
|
||||
|
||||
# 其他
|
||||
...
|
||||
```
|
||||
|
||||
研究任务:
|
||||
1. 抓包分析 Cursor 的所有 API 请求
|
||||
2. 确定需要劫持的端点列表
|
||||
3. 分析请求/响应格式
|
||||
4. 确定 Token 在请求中的位置
|
||||
|
||||
---
|
||||
|
||||
## 五、风控规避
|
||||
|
||||
### Cursor 可能的检测手段
|
||||
|
||||
| 检测方式 | 规避方法 |
|
||||
|---------|---------|
|
||||
| IP异常 | 使用住宅代理IP池 |
|
||||
| 设备指纹 | 同步machineId |
|
||||
| 请求频率 | 限流 + 分散 |
|
||||
| Token异常 | 模拟正常使用模式 |
|
||||
| TLS指纹 | 使用标准TLS库 |
|
||||
|
||||
### 建议策略
|
||||
|
||||
1. **账号隔离**: 一个账号同时只服务一个用户
|
||||
2. **请求限流**: 单账号请求频率限制
|
||||
3. **IP绑定**: 账号绑定固定IP段
|
||||
4. **行为模拟**: 模拟正常用户使用模式
|
||||
|
||||
---
|
||||
|
||||
## 六、实施阶段
|
||||
|
||||
### Phase 1: 研究 (预计2周)
|
||||
- [ ] 抓包分析 Cursor API
|
||||
- [ ] 研究 Cursor 配置文件
|
||||
- [ ] 评估各方案可行性
|
||||
- [ ] 选定最终方案
|
||||
|
||||
### Phase 2: 原型开发 (预计3周)
|
||||
- [ ] 开发代理服务核心
|
||||
- [ ] Token 替换逻辑
|
||||
- [ ] 账号池调度算法
|
||||
- [ ] 本地测试
|
||||
|
||||
### Phase 3: 集成测试 (预计2周)
|
||||
- [ ] 与现有后端集成
|
||||
- [ ] 多账号切换测试
|
||||
- [ ] 性能测试
|
||||
- [ ] 稳定性测试
|
||||
|
||||
### Phase 4: 灰度发布 (预计2周)
|
||||
- [ ] 小范围用户测试
|
||||
- [ ] 收集反馈
|
||||
- [ ] 修复问题
|
||||
- [ ] 正式发布
|
||||
|
||||
---
|
||||
|
||||
## 七、成本预估
|
||||
|
||||
| 项目 | 预估成本 |
|
||||
|-----|---------|
|
||||
| 开发人力 | 2人月 |
|
||||
| 服务器 (代理集群) | $200-500/月 |
|
||||
| 动态IP代理 | $100-300/月 |
|
||||
| 域名+SSL | $50/年 |
|
||||
|
||||
---
|
||||
|
||||
## 八、风险评估
|
||||
|
||||
| 风险 | 等级 | 应对措施 |
|
||||
|-----|-----|---------|
|
||||
| Cursor更新导致失效 | 高 | 预留回滚方案 |
|
||||
| 被Cursor封禁 | 中 | IP池 + 行为模拟 |
|
||||
| 用户不愿装证书 | 中 | 提供详细教程 |
|
||||
| 技术难度超预期 | 中 | 阶段性评估 |
|
||||
|
||||
---
|
||||
|
||||
## 九、决策点
|
||||
|
||||
在启动3.0之前需要回答:
|
||||
|
||||
1. **是否真的需要?**
|
||||
- 2.0 的"重启换号"用户接受度如何?
|
||||
- 用户对"无感"的需求有多强烈?
|
||||
|
||||
2. **投入产出比?**
|
||||
- 开发成本 vs 带来的价值
|
||||
- 维护成本 vs 收益
|
||||
|
||||
3. **风险是否可控?**
|
||||
- Cursor 的封禁风险
|
||||
- 法律合规风险
|
||||
|
||||
---
|
||||
|
||||
## 十、参考资料
|
||||
|
||||
待收集:
|
||||
- Cursor 官方 API 文档 (如有)
|
||||
- 类似项目实现参考
|
||||
- MITM 代理开发资料
|
||||
- 动态IP代理服务商对比
|
||||
|
||||
---
|
||||
|
||||
> 本文档仅作为技术方案规划,启动前需要团队评审确认。
|
||||
Reference in New Issue
Block a user