Files
creator-hub/docs/product/compliance-product-plan.md
T

207 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# CreatorHub 内部技术探索方案
> 状态:历史探索记录,不再作为当前产品范围与验收依据。
> 当前权威入口:[需求细化与验收标准](../plan01.md)。冲突以该文档及使用者最新确认为准;以下“本轮”“当前”均指 2026-08-27 的旧探索阶段。
> 旧阶段 A 仅离线 Mock,不等于新计划 G0/G1;旧“仅自有账号”、自动动作排除项和逐次草稿确认不限制新计划中的公开可访问/已授权竞品采集及按策略自动响应。人工发送仍逐次确认。
> 本文中的 RBAC、Secret Manager 等历史设想不构成本期新增系统要求;实际部署与现有认证见[部署说明](../deployment.md),不因新开发目标而宣称旧认证已移除。
> 日期:2026-08-27
> 上游参考快照:`3441293738/creatorhub@11df1389ee557169bb2381e5ea08de96f14f80c7`
## 1. 定位
CreatorHub 是一个**内部、非公开**的多账号运行环境与运营任务技术实验台,只处理团队自有或已获明确授权的账号。
阶段 A 采用单用户模式,只用于验证账号隔离、任务幂等、停止和审计等核心能力。多用户协作、账号负责人、RBAC 和职责隔离后续另行规划,不属于当前实现或验收范围。
当前目标不是形成对外产品承诺,而是回答三个工程问题:
1. 多账号 Profile、运行时和网络出口能否稳定隔离并可复现;
2. 账号、单用户确认、任务和执行证据能否形成最小可审计闭环;
3. 平台页面、登录态或运行环境变化时,系统能否及时观测、停止并安全恢复。
判断标准是实验可复现、凭据不泄露、账号不串用、任务不重复、异常可停止;不以“通过平台检测”或“降低封禁率”作为指标。
## 2. 探索范围
### 纳入本轮
- 1 个本地 workspace;
- 团队自有或有明确授权记录的测试账号;
- 指纹 Chromium 与系统 Chrome 的运行时接入、版本固定和 Profile 隔离;
- 受管网络出口的绑定、健康观测和失败关闭;
- 账号台账、凭据引用和状态;
- 草稿、单用户显式确认、队列、执行结果、暂停和审计;
- 授权沙箱中的兼容性矩阵、黑盒观测和停止条件。
### 暂不纳入
- 公众注册、多租户 SaaS、计费、客服和 SLA;
- 多用户协作、账号负责人、RBAC 和职责隔离;
- 市场推广、外部客户承诺和规模化部署;
- 自动评论、批量私信、自动关注、刷量和未授权数据采集;
- 验证码或设备校验绕过、私有签名、逆向接口、TLS/JA3/指纹伪装;
- 平台提示异常后通过换代理、换设备、换身份或自动重试继续执行。
这些边界保护实验账号、凭据和数据,也避免把不可验证的规避假设写成工程需求。
## 3. 五个领域的优先级
P0 是首轮验证必需,P1 仅在 P0 通过后开展。
| 领域 | P0 | P1 | 本轮停止线 |
| --- | --- | --- | --- |
| 运行环境 | 每账号独立 Profile;运行时版本固定;单实例占用锁;环境变更留痕;浏览器崩溃可见 | 升级灰度、备份恢复、跨 OS 兼容矩阵 | Profile 串用、版本漂移、设备校验或未知挑战页 |
| 网络出口 | 账号稳定绑定;连通性与认证观测;出口失效时禁止静默直连;凭据脱敏 | 容量、延迟、可用率和成本统计 | 出口地址/地区异常变化、认证失败、网络策略不明确 |
| 账号池 | 自有/授权标记;平台账号唯一键;凭据只存引用;状态和撤销 | 标签、归档、登录态健康 | 授权不明、账号映射冲突、凭据进入日志 |
| 单用户确认 | 草稿显式确认;确认版本锁定;紧急停机;追加式审计 | 多用户、负责人和 RBAC 另行规划 | 确认版本不一致、无法确认操作者 |
| 任务编排 | capability allowlist;幂等键;单次提交;暂停/取消;明确结果证据;`needs_confirmation` | 排期、失败分类、人工恢复和只读健康看板 | 403/429、验证码、设备校验、平台警告、结果不确定 |
## 4. 最小系统形态
```text
React/Vite 内部管理台
│
▼
模块化单体控制面 ─── Postgres
│
▼
一个持久任务 Worker
│
├─ 官方能力连接器
└─ 受控浏览器执行器
Secret Manager / OS Keyring 只保存凭据,数据库仅存引用。
```
本轮不拆微服务、不引入通用工作流引擎。Postgres 的唯一约束、事务和行锁足以完成幂等、租约和状态推进。
### 最小实体
- `social_account`, `credential_ref`
- `runtime_profile`, `network_exit`, `environment_binding`
- `content_draft`, `confirmation`, `operation_task`, `execution_attempt`
- `observation_event`, `audit_event`
任务状态:
`draft → pending_confirmation → confirmed → queued → executing → succeeded / failed / needs_confirmation / policy_hold / cancelled`
`needs_confirmation` 与 `policy_hold` 只能由当前用户核验后处理,不自动重试。
## 5. 授权沙箱威胁模型
### 资产
- 账号凭据、Cookie/token、Profile 与本地存储;
- 草稿、媒体、私信或其他账号数据;
- 单用户确认版本和执行证据;
- 网络出口凭据与环境观测数据。
### 高层威胁与控制
| 威胁 | 可观测现象 | 系统控制 |
| --- | --- | --- |
| Profile 或账号串用 | 当前账号标识与任务账号不一致 | 执行前双重校验、每账号锁、立即停机 |
| 凭据泄露 | 日志/错误/导出中出现敏感字段 | Secret 引用、结构化脱敏、敏感字段扫描 |
| 环境兼容性漂移 | 浏览器版本、启动结果、页面能力或登录态变化 | 固定版本、记录变更、按兼容矩阵回归;不猜测检测机制 |
| 网络出口漂移 | 出口健康、地址或地区标签变化 | 稳定绑定、变更确认、失败关闭;不自动换出口继续 |
| 重复或错误写入 | 重复任务、账号/草稿/确认版本不一致 | 唯一幂等键、版本锁定、一次提交、结果核验 |
| 平台挑战或限制 | 验证码、设备校验、403/429、警告、未知阻断页 | 暂停账号和相关任务,保存最小证据,交当前用户手工核验 |
| 浏览器/UI 变化 | 元素缺失、导航异常、成功证据缺失 | 连接器隔离、明确超时、进入 `needs_confirmation` |
威胁模型只记录外部可见信号、影响和停止策略,不记录平台内部检测项猜测、规避参数或可操作绕过步骤。
## 6. 兼容性观测方案
### 记录维度
- 平台与场景:登录、只读同步、草稿准备、受控发布;
- OS、浏览器后端、运行时版本、Profile 标识;
- 网络出口的内部标签与健康状态,不记录可复用凭据;
- 开始/结束时间、任务状态、浏览器退出码、页面可用性;
- 平台返回的通用状态分类:成功、认证失效、限流、挑战、未知;
- 当前用户、确认版本、停止原因和人工核验结论。
### 不记录
- 平台检测脚本、私有接口、签名材料或 Cookie 拼装方式;
- TLS/JA3、Canvas、WebGL 等伪装参数与“通过率”;
- 验证码、设备校验或封禁后的规避路径;
- 可用于换身份、换地区或复现他人账号环境的敏感细节。
### 输出
每次实验只产出一条结构化记录和必要的脱敏截图/日志:输入版本、环境版本、预期、结果、停止原因、是否可复现。未知结果保留为未知,不推断平台检测逻辑。
## 7. 验证方案
### 阶段 A:离线闭环
范围:1 workspace、1 个内部用户、2 个虚拟账号、Mock 连接器、20 个任务。
阶段 A 仅验证单用户核心闭环;负责人、RBAC、多用户协作和职责隔离不属于本阶段验收。
验收:
- 单用户从账号配置、草稿、显式确认到 Mock 执行和审计回溯的核心闭环可重复验证;
- 20 个任务重复执行为 0;
- 账号、草稿或确认版本不一致时执行为 0;
- 暂停账号后 1 分钟内不再领取新任务;
- 日志、错误、导出中无密码、Cookie/token 和网络凭据;
- 每个结果都能回溯到账号、单用户确认版本和执行尝试。
阶段 B/C 仅保留后续验证门槛,本轮不实施、不接入真实平台;进入任一阶段前需重新规划并审查范围。
### 阶段 B:本地授权沙箱
范围:1 个平台、1 个自有测试账号、1 个固定 Profile、1 个受管出口;仅验证登录、只读页面、启动/停止和观测链路。
验收:
- 连续 10 次启动均命中同一账号与 Profile,无串用;
- 运行时或出口配置变化会阻止任务并要求当前用户确认;
- 浏览器崩溃、登录失效、挑战页和网络失败都能进入明确停止状态;
- 不通过自动刷新、重试、换出口或换环境消除异常。
### 阶段 C:受控写入
前提:阶段 A/B 通过;当前用户明确确认;连接器 capability 已核验。
范围:同一自有测试账号,5 个低风险草稿,逐次显式确认和原生平台核验。
验收:
- 重复写入、错账号写入、未确认写入均为 0;
- 5 次执行都有明确成功证据或进入 `needs_confirmation`;
- 任一停止条件出现即终止本阶段,不扩大样本。
## 8. 停止与恢复
### 立即停止条件
- 验证码、设备校验、平台警告、403/429 或未知挑战页;
- 账号、Profile、网络出口或确认版本不一致;
- 代理认证失败、出口异常变化或发生静默直连;
- 提交结果不确定、浏览器崩溃或成功证据缺失;
- 凭据泄露或跨账号数据出现。
### 恢复条件
只允许当前用户在原生平台/可见浏览器中完成核验,并记录原因与结论后恢复。恢复沿用原账号、原 Profile 和已确认环境;不得通过换代理、换设备、换身份、自动刷新或规避步骤推进实验。
## 9. 审查决策
- **通过**:定位、范围、五领域 P0、威胁模型、观测字段和停止条件获得确认,由工程师入库并拆阶段 A。
- **修改后通过**:仅调整内部实验规模、字段或职责,不放宽安全边界。
- **不通过**:目标依赖检测规避、验证绕过、私有签名、指纹伪装或换身份/出口继续执行。
## 10. 参考输入
- 上游仓库固定快照:<https://github.com/3441293738/creatorhub/tree/11df1389ee557169bb2381e5ea08de96f14f80c7>
- 上游能力说明:<https://github.com/3441293738/creatorhub/blob/11df1389ee557169bb2381e5ea08de96f14f80c7/README.md>
- 上游数据模型:<https://github.com/3441293738/creatorhub/blob/11df1389ee557169bb2381e5ea08de96f14f80c7/app/models.py>
- 上游 Profile/代理分配:<https://github.com/3441293738/creatorhub/blob/11df1389ee557169bb2381e5ea08de96f14f80c7/app/profiles.py>
- 上游风险控制:<https://github.com/3441293738/creatorhub/blob/11df1389ee557169bb2381e5ea08de96f14f80c7/app/risk.py>
上游根目录在该快照未发现明确许可证文件,因此本方案只参考公开产品行为和领域概念,不授权复制上游源码、测试或资源。