-
Notifications
You must be signed in to change notification settings - Fork 1.6k
【功能建议】用户身份隐藏功能 - 借鉴 cc-gateway 的实现 #1451
Copy link
Copy link
Open
Description
Feature Request: 用户身份隐藏功能 - 向 cc-gateway 借鉴
背景
cc-gateway 是一个专门为 Claude Code 设计的反向代理,其核心功能是隐藏用户真实身份信息以防止账号封禁。通过分析 cc-gateway 的实现,建议 sub2api 借鉴其身份隐藏机制。
核心功能建议
1. 设备指纹重写 (Device Fingerprint Rewriting)
cc-gateway 重写了 40+ 维度的 env 对象,包括:
device_id→ 固定 canonical 值platform→ 统一值shell→ 统一值os_version→ 统一值home→/home/canonicalworking_directory→ 标准化路径- 进程指标 (
constrainedMemory,rss,heapTotal,heapUsed)
建议:新增 identity.rewrite_env 配置,允许管理员设置统一的设备指纹。
2. 用户标识重写
cc-gateway 重写了 metadata.user_id、session_id 等字段。
建议:新增 identity.rewrite_user 配置,防止用户真实身份泄露到上游。
3. 敏感 Header 剥离
cc-gateway 主动剥离:
x-anthropic-billing-header- 计费相关x-device-id- 设备标识
建议:建立敏感 header 黑名单,在请求转发前自动剥离。
4. System Prompt 环境信息清理
cc-gateway 重写 <env> 块中的信息,甚至标准化 home 路径。
建议:如果用户把环境信息放在 system prompt 里,需要解析并重写其中的敏感环境变量。
5. 请求路径标准化
- cc-gateway 标准化
/Users/xxx/→/home/canonical - 重写所有能识别用户身份的路径
建议:新增路径替换规则配置。
参考实现
cc-gateway 的核心重写逻辑在 rewriter.ts 中,包括:
rewriteBody()- 重写请求 bodyrewriteHeaders()- 重写 HTTP headersrewriteSystemPrompt()- 重写 system prompt
使用场景
- Claude Code 用户:不想让上游识别出多设备共用一个账号
- 隐私保护:用户不想暴露真实系统环境
- 防封禁:减少因设备指纹异常导致的账号风险
优先级建议
| 功能 | 优先级 | 理由 |
|---|---|---|
| 敏感 Header 剥离 | P0 | 影响直接,容易实现 |
| 用户标识重写 | P0 | 核心隐私保护 |
| 设备指纹重写 | P1 | 配置复杂度高 |
| System Prompt 清理 | P1 | 需要解析 prompt 内容 |
| 路径标准化 | P2 | 依赖具体场景 |
相关讨论:#1413
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels