# VTY 品牌域名防护 · 产品方案 PRD

| 字段 | 内容 |
|------|------|
| 文档类型 | **产品方案**（不含技术实现细节） |
| 文档版本 | **v1.2** |
| 修订日期 | 2026-09-02 |
| **本次范围** | **仅品牌域名 · PC / H5**；**不涉及 App、不涉及分享域名** |
| 线上评审 | [index.html](./index.html) · [流程截图](./flow/) · [PRD.html](./PRD.html) |

> **说明：** 本文档仅描述 **产品需求、流程、判断逻辑与验收标准**。接口、加密、SDK、部署等 **由技术团队自行设计**，不在本文范围。

> **范围（必读）：** 本文 **只** 规范用户通过 **品牌域名** 在 **PC 浏览器 / H5 浏览器** 进入主站的流程。**App 客户端** 与 **分享域名**（分享短链、分享落地域等）**均不在本文范围**，维持现网，不做产品变更。

---

<a id="part1"></a>

# 一、需求背景

## 1.1 为什么要做

VTY 对外使用 **品牌域名**（如 `winbet.com`）投放广告、口碑与物料。真正承载业务的是 **可轮换的主站域名**（如 `play-*.com`），会因区域封锁、投诉、扫描等原因失效。

**现网问题（以 vty.vip 为参考）：**

| 现象 | 影响 |
|------|------|
| 中国部分区域成功进入约 **75%** | 约 1/4 用户进不了首页 |
| 品牌域曾暴露或与业务强绑定 | 易被举报/扫描，**品牌域被标危险或无法访问** |
| 跳转目标写死 | 单主站挂则入口全挂 |
| 用户/爬虫可直接看到业务特征 | 加速封禁 |

## 1.2 产品目标

1. **品牌域干净**：用户与监管扫描品牌域时，**看不到**登录、钱包、赛事等业务页。  
2. **落地判定**：在 **落地中间域** 完成 **风控判定**（黑名单 / 刷机 / 脚本等，§3.3.1）；**不通过则在落地域拦截**，不进入主站。  
3. **动态主站**：判定通过后，下发 **加密的、最多 3 条** 可用主站域名；客户端 **探活后进入** 第一条可用域。  
4. **主站可换、品牌不换**：主站域被封可切换；**品牌域尽量不因连带被标危险**。

## 1.3 成功指标（产品 KPI）

| 指标 | 基线（vty.vip） | 目标 |
|------|-----------------|------|
| 中国区经 **品牌链** 成功进入首页 | ~75% | **≥88%**（稳定 30 天） |
| 品牌域首跳可打开（301 到落地域） | ~80～85% | **≥95%** |
| 7 日内品牌域因 **内容/举报** 失效 | 有发生 | **0 次** |

---

<a id="part2"></a>

# 二、需求边界

## 2.0 范围一句话

**只涉及品牌域名（PC + H5）；不涉及 App；不涉及分享域名。**

## 2.1 本次包含（In Scope）

| 范围 | 说明 |
|------|------|
| **品牌域名 · PC 浏览器** | 用户访问品牌 URL 的完整流程（见 [流程截图](./flow/)） |
| **品牌域名 · H5 浏览器** | 与 PC **同一套逻辑**，仅布局适配移动端 |
| **运维 301** | 品牌域 **仅** 跳转到 **落地域**（产品规则，运维执行） |
| **落地域产品行为** | 风控判定（黑名单 / 刷机 / 脚本）、下发加密动态主站列表、探活、进入主站 |
| **落地域异常提示** | 判定失败在 **落地域** 展示（空页 / Loading / 全屏），**不暴露主站域名** |
| **主站进入后** | 使用现有 **主站动态域名 / 轮询切换** 能力（见 2.2） |

## 2.2 本次不包含（Out of Scope）

| 范围 | 说明 |
|------|------|
| **App（全部）** | App 打开、App 动态域名、App 切流/强更等 — **不涉及、不改** |
| **分享域名（全部）** | 分享短链、分享落地域、分享页跳转逻辑等 — **不涉及、不改** |
| **技术实现方案** | 接口、加密算法、服务器架构、代码 — **技术另册** |
| **其它非品牌入口** | 如收藏主站直访等 — **不在本文** |
| **业务功能** | 登录、投注、充值等 — 不在本文 |

## 2.3 角色分工（产品视角）

| 角色 | 负责 |
|------|------|
| **运维** | 品牌域 DNS/CDN；**301 → 落地域**；品牌域零内容 |
| **技术** | 落地域风控判定、加密下发、探活、异常页实现（刷机/脚本识别标准 **技术补充**） |
| **运营/风控** | 维护 **IP / 设备黑名单** |
| **产品** | 流程、文案、验收标准 |
| **测试** | 按本文第九、十章验收 |

---

<a id="part3"></a>

# 三、具体需求

## 3.1 域名角色（产品定义）

| 角色 | 示例 | 用户是否看到业务 | 产品要求 |
|------|------|------------------|----------|
| **品牌域** | `winbet.com` | 否 | 仅跳转，无业务页 |
| **落地域** | `entry.vty.net` | 否（仅加载/报错） | 判定与报错发生在此 |
| **主站域** | `play-a.com` | **是** | 完整业务首页/登录 |

## 3.2 品牌域 → 落地域（运维 301）

| 编号 | 需求 |
|------|------|
| R-B1 | 用户访问品牌域 **任意路径**，均 **301/308** 到 **落地域**（带品牌标识参数） |
| R-B2 | 品牌域响应 **不得** 出现业务 HTML（登录、首页、钱包等） |
| R-B3 | 301 目标 **不得** 直接指向主站域 `play-*.com` |
| R-B4 | 品牌域被投诉或扫描时，能提供的材料 **仅为跳转或空响应** |

## 3.3 落地域判定与动态主站

| 编号 | 需求 |
|------|------|
| R-L1 | 用户进入落地域后，系统进行 **风控判定**：黑名单 IP/设备、**刷机**、**脚本/自动化** 等（见 §3.3.1） |
| R-L2 | **风控不通过**（§3.3.1 任一项命中）：落地域 **空页**，**不进入主站**，不下发主站列表 |
| R-L2b | **非风控失败**（频率限制、接口异常、探活全失败）：落地域 **规范报错**（全屏 + 文案，见第八章），仍 **不暴露主站域名** |
| R-L3 | **风控通过**：系统返回 **加密的动态主站域名列表**（最多 **3** 条，有序） |
| R-L4 | 客户端在 **落地域页面内** 按顺序 **探活**；**第一条可用** 即进入（探活规则见 §3.3.3） |
| R-L5 | 探活过程中用户地址栏 **仍为落地域**；**仅探活成功后** 跳转到主站域 |
| R-L6 | 落地域阶段任何失败，文案 **不得** 出现主站域名明文 |
| R-L7 | **频率限制**：同一访问主体在配置窗口内超阈值 → 落地域全屏「访问过于频繁」，不下发主站（阈值 **技术/风控配置**） |

### 3.3.1 异常访问 · 产品定义

以下情况一律视为 **异常**，落地域 **空页**，**不进入主站**（对用户无业务文案）：

| 类型 | 产品说明 |
|------|----------|
| **IP 黑名单** | 当前 IP 命中 **后台配置的 IP 黑名单** |
| **设备黑名单** | 当前设备标识（浏览器指纹等）命中 **后台配置的设备黑名单** |
| **刷机设备** | 用户终端为 **刷机 / Root** 等高风险环境 |
| **脚本进入** | **脚本、自动化工具、爬虫** 等非正常人工浏览器访问 |

> - **命中任一项** → 异常，落地域空页  
> - **均未命中** → 不因风控项拦截，继续频率限制、探活等后续流程  

### 3.3.2 判定标准 · 技术补充

> **产品不限定** 刷机识别、脚本识别、指纹采集等 **具体技术手段与阈值**。  
> 上述各项的 **判定规则、特征库、接口字段**，由 **技术团队在实现方案中补充**（详见 [技术开发清单](./dev/)）；产品只要求：**识别为异常时的用户表现** 与本文一致（空页，不暴露主站）。

### 3.3.3 探活与异常表现 · 产品规则

| 环节 | 产品规则 |
|------|----------|
| **探活顺序** | 按下发列表 **1 → 2 → 3** 依次探测，**最多 3 条** |
| **探活成功** | **第一条可用** 即跳转主站；前序失败可 Toast「正在切换备用线路…」 |
| **探活全失败** | 落地域 **全屏**「暂时无法连接」，可重试；**不** 跳主站 |
| **风控命中** | **空页**（与 E1 一致，**非** 全屏报错） |
| **频率限制** | **全屏**「访问过于频繁」（E6） |
| **接口/数据异常** | **全屏**「加载失败」或「暂时无法连接」（E4/E5） |

### 3.3.4 需求编号索引

| 编号 | 摘要 |
|------|------|
| R-B1～R-B4 | 品牌域 301、零业务 |
| R-L1～R-L2 | 风控判定；命中 → **空页** |
| R-L2b、R-L7 | 频率 / 接口 / 探活失败 → **规范全屏** |
| R-L3～R-L6 | 加密下发、探活进站、不暴露主站 |
| R-S1～R-S2 | 进站后沿用现有主站切换 |

## 3.4 主站进入后

| 编号 | 需求 |
|------|------|
| R-S1 | 进入主站后，沿用 **现有** 主站动态域名、故障切换逻辑 |
| R-S2 | 运行期主站不可用时的提示与切换，**在主站域** 完成（Toast 等），**不跳回落地域** |

## 3.5 涉及端（仅以下两端）

| 端 | 是否涉及 | 需求 |
|----|----------|------|
| **PC 浏览器** | ✓ | 品牌域 → 落地 → 主站，完整流程 |
| **H5 浏览器** | ✓ | 同 PC；异常提示适配移动端（430px 设计参考） |
| **App** | ✗ | **不涉及** |
| **分享域名** | ✗ | **不涉及** |

---

<a id="part4"></a>

# 四、涉及范围

## 4.1 页面与系统

| 模块 | 是否涉及 |
|------|----------|
| 品牌域 CDN / 301 规则 | ✓ 运维 |
| 落地域页面（加载/报错） | ✓ 技术+UI |
| 后台 IP / 设备黑名单 | ✓ 运营/风控配置，落地域判定读取 |
| 刷机 / 脚本风控识别 | △ **判定标准技术补充**；异常时产品表现同 §3.3.1 |
| 主站首页 / 登录（进站后） | ✓ 仅「被跳转到」 |
| App 客户端 | ✗ **不涉及** |
| 分享域名 / 分享短链 | ✗ **不涉及** |
| 后台域名池配置 | △ 技术实施，产品仅约束品牌链结果 |

## 4.2 用户入口

```text
✓ 本次唯一产品变更入口：
    PC 浏览器 / H5 浏览器 → 打开 【品牌域名】

✗ 明确不涉及：
    App 任意入口
    分享域名 / 分享链接任意入口
```

## 4.3 文案与语言

| 项 | 要求 |
|----|------|
| 默认语言 | 简体中文 |
| 越南语 | 与中文 **同场景同 key**，产品定稿语义（中/越双语） |
| 禁止对用户说 | 「IP 被封」「指纹异常」「域名池」「刷机」「脚本」等 |

---

<a id="part5"></a>

# 五、注意事项

1. **品牌域永不挂业务**：任何「救急把首页挂回品牌域」**禁止**。  
2. **落地域不是主站**：落地域 **不得** 出现投注、钱包、完整首页。  
3. **失败不暴露主站**：判定失败阶段，用户 **不应** 在地址栏或文案中看到 `play-*.com`。  
4. **主站可牺牲**：单个主站域被封 **允许** 换池内其它域；**品牌域不应连带失效**。  
5. **PC 与 H5 流程一致**：差异仅在 **布局**，流程与判断 **相同**。  
6. **异常访问统一处理**：黑名单、**刷机**、**脚本/自动化** 等风控命中，均 **空页、不进主站**（见 §3.3.1）。  
7. **黑名单口径**：「IP / 设备异常」首先指 **后台黑名单命中**；非泛指网络故障或终端型号不支持。  
8. **刷机 / 脚本**：产品要求 **直接当异常**；**如何识别** 由技术补充（§3.3.2），对用户 **不展示** 「刷机」「脚本」等字样。  
9. **范围外系统不动**：**App**、**分享域名** 相关能力与流程 **不在本文修改**；若有关联需求需 **单独立项**。

---

<a id="part6"></a>

# 六、逻辑判断

## 6.1 判定顺序（产品规则）

```text
1. 用户是否从品牌域 301 到达落地域？（运维保障）
2. 落地域风控判定（产品规则，识别方式见 §3.3.2 技术补充）：
   a. 当前 IP 是否命中 【后台 IP 黑名单】？
   b. 当前设备是否命中 【后台设备黑名单】？
   c. 是否为 【刷机 / Root】 等高风险终端？
   d. 是否为 【脚本 / 自动化 / 爬虫】 访问？
3. 是否触发 **频率限制**（R-L7）？
   → 风控命中：停止，落地域 **空页**（E1），不下发主站
   → 频率命中：停止，落地域 **全屏**「访问过于频繁」（E6），不下发主站
4. 风控与频率均通过：下发加密动态主站列表（≤3 条）
5. 按顺序探活主站（§3.3.3）
   → 有可用：跳转主站首页/登录
   → 全无可用：落地域 **全屏**「暂时无法连接」（E4），可重试
   → 接口/data 异常：落地域 **全屏**「加载失败」（E5），可重试
```

## 6.2 判断结果与用户体验

| 判断 | 地址栏 | 用户看到 | 是否进主站 | 场景 ID |
|------|--------|----------|------------|---------|
| 风控异常（黑名单 / 刷机 / 脚本） | 落地域 | **空页**（无文案） | 否 | E1 |
| 频率过高 | 落地域 | 「访问过于频繁」全屏 | 否 | E6 |
| 获取主站列表 / 数据异常 | 落地域 | 「加载失败」全屏 + 重试 | 否 | E5 |
| 探活：第 1 条可用 | 落地域→**主站** | Loading 后进首页 | **是** | E2→进站 |
| 探活：第 1 慢、第 2 成功 | 落地域→主站 | Toast「切换线路」 | **是** | E3 |
| 探活：全部失败 | 落地域 | 「暂时无法连接」全屏 | 否 | E4 |
| 已在主站，主站故障 | 主站 | Toast「已切换线路」 | 仍在主站 | §8.2 |

## 6.3 谁做什么（产品决策表）

| 环节 | 运维 | 技术 | 产品 |
|------|------|------|------|
| 301 到落地域 | **执行** | 提供落地域 URL 规范 | **定规则** |
| IP/设备/风控判定 | — | **实现**（含刷机、脚本识别，标准技术补充） | **定通过/失败体验** |
| 加密动态域名 | — | **实现** | **定最多 3 条、有序** |
| 探活进入 | — | **实现** | **定 Loading/Toast 文案** |
| 主站切换 | — | 现有能力 | 不变 |

---

<a id="part7"></a>

# 七、流程

> **可视化：** [flow/index.html](./flow/index.html) — PC / H5 **页面截图式** 分步说明。

## 7.1 PC 打开品牌域（总览）

```text
步骤1  用户 PC 浏览器输入/点击 winbet.com
步骤2  【运维】品牌 CDN 301 → entry.vty.net（落地域）
步骤3  落地域：显示「正在连接最佳线路…」
步骤4  落地域：风控判定 + 频率检查（识别标准见 §3.3.2）
       ├─ 风控命中（黑名单/刷机/脚本）→ 空页（E1）
       ├─ 频率限制 → 全屏「访问过于频繁」（E6）
       └─ 通过 ↓
步骤5  落地域：获得加密动态主站列表 → 解密 → 依次探活
       ├─ 某条可用 → 步骤6
       └─ 均不可用 → 落地域全屏「暂时无法连接」
步骤6  浏览器跳转到 play-x.com 主站首页（完整业务）
步骤7  之后主站故障 → 现有动态域名切换（不变）
```

## 7.2 H5 打开品牌域（总览）

与 **§7.1 逻辑完全相同**。差异：

| 项 | H5 |
|----|-----|
| 设备 | 手机浏览器 / WebView |
| 布局 | 430px 宽；顶栏 Loading、Toast 位置见 Demo |
| 地址栏 | 同样经历 品牌→落地→主站 |

## 7.3 流程与截图对照

| 步骤 | PC/H5 截图编号 | 说明 |
|------|----------------|------|
| 1 | S1 | 用户点击品牌域 |
| 2 | S2 | 301 后地址栏变为落地域 |
| 3 | S3 | 落地域 Loading |
| 4 | S4 | 风控判定（命中 → S0 空页；通过 → 继续） |
| 5a | S5 | 探活切换 Toast（可选） |
| 5b | S6 | 探活 **全失败** 全屏（E4，非风控空页） |
| 6 | S7 | 进入主站首页 |
| — | S0 | 风控异常（黑名单 / 刷机 / 脚本）：空页 |

---

<a id="part8"></a>

# 八、异常场景描述

## 8.1 落地域阶段（报错在落地域）

> **表现分级：** **风控命中（E1）= 空页**；**频率 / 探活 / 接口失败 = 全屏报错**。二者不可混用。

| 场景 ID | 触发条件 | 用户操作 | 产品表现 | 地址栏 | 文案要点（zh-CN） |
|---------|----------|----------|----------|--------|-------------------|
| E1 | 风控命中 | 点击品牌 | **空页** | 落地域 | **无**（黑名单 / 刷机 / 脚本） |
| E2 | 风控通过 | 点击品牌 | 顶栏 Loading | 落地域 | 正在连接最佳线路… |
| E3 | 探活切换 | 等待 | Toast 3s | 落地域 | 正在切换备用线路… |
| E4 | 探活全失败 | 等待 | 全屏 | 落地域 | 暂时无法连接 + 重新连接 / 联系客服 |
| E5 | 接口/数据异常 | 等待 | 全屏 | 落地域 | 加载失败 + 刷新重试 |
| E6 | 频率限制 | 短时间多次访问 | 全屏 | 落地域 | 访问过于频繁 |
| E7 | 品牌域不可用 | 点击品牌 | 浏览器报错 | 品牌域 | （运维域，非落地逻辑） |

## 8.2 主站阶段（进站后 · 沿用现有）

| 场景 | 产品表现 | 说明 |
|------|----------|------|
| 主站 API 失败 | Toast「已切换备用线路」 | **现有** 动态域名能力 |
| 主站全挂 | 全屏「暂时无法连接」 | 可重试；**不** 跳回品牌域 |

## 8.3 产品禁止表现

- 判定失败时展示 **主站域名** 或「域名池」字样  
- 风控命中时用 **全屏报错** 代替 **空页**（E1 必须空页）  
- 对用户展示「刷机」「脚本」「黑名单」「指纹异常」等 **内部原因**  
- 判定失败时用 **业务首页** 壳子展示赌博/钱包内容  
- 品牌域出现 **200 业务页**  

---

<a id="part9"></a>

# 九、产品验收标准

## 9.1 品牌域（运维 + 产品联合）

| # | 验收项 | 标准 |
|---|--------|------|
| A1 | PC/H5 访问品牌根路径 | **301** 到落地域 |
| A2 | 访问 `/login` 等品牌路径 | 仍 **301**，无业务页 |
| A3 | 品牌页 Body | **无** 登录/钱包/赛事关键词 |
| A4 | 301 Location | **仅** 落地域，**非** play-*.com |

## 9.2 落地域

| # | 验收项 | 标准 |
|---|--------|------|
| B1 | 正常用户 PC | 经 Loading → **进入主站** |
| B2 | 正常用户 H5 | 同 B1 |
| B3 | 模拟 **黑名单 IP / 黑名单设备** | **空页**（非全屏），地址栏仍为落地域 |
| B4 | 模拟 **刷机终端** 或 **脚本/自动化** 访问 | 同 B3；识别规则由 **技术方案** 定义 |
| B5 | 模拟主站列表 **探活全不可用** | 落地域 **全屏** E4，**不出现** play-*.com |
| B6 | 模拟 **频率限制** 触发 | 落地域 **全屏** E6 |
| B7 | 单条主站慢、下一条可用 | Toast E3 后进入 **另一条** 主站 |
| B8 | 文案 | 与 [flow/](./flow/) 一致；中/越 **同场景同 key** |

## 9.3 主站与范围外（回归）

| # | 验收项 | 标准 |
|---|--------|------|
| C1 | 进站后 | 地址栏为 **主站域**，业务可交互 |
| C2 | 主站故障切换 | **现有** 能力正常，产品 **无回归** |
| C3 | **App** 任意打开方式 | **与改前一致**（本文 **不涉及** App） |
| C4 | **分享域名** 任意打开方式 | **与改前一致**（本文 **不涉及** 分享域名） |

## 9.4 KPI 验收（上线 30 天后）

| # | 指标 | 标准 |
|---|------|------|
| D1 | 品牌链成功进入率 | ≥ **88%**（中国区） |
| D2 | 品牌 7 日内内容类失效 | **0 次** |
| D3 | 较 vty.vip 基线 | 提升 ≥ **13pp** |

## 9.5 签字

| 角色 | 验收内容 | 签字 |
|------|----------|------|
| 产品 | 流程/文案/边界 | |
| 运维 | 301 + 品牌零内容 | |
| 技术 | 落地判定 + 探活进站 | |
| 测试 | A～D 全通过（含 B3/B4 空页与 B5/B6 全屏区分） |

---

<a id="part10"></a>

# 十、评审检查清单

> 评审时可按本清单 **逐项勾选**，确保逻辑闭环、范围清晰、可验收。

## 10.1 范围与边界

| ✓ | 检查项 |
|---|--------|
| ☐ | 仅 **品牌域名 · PC/H5**，不含 App、分享域名 |
| ☐ | 品牌域 **301 → 落地域**，不直连主站 |
| ☐ | 进站后主站切换 **沿用现网**，不要求改造 |

## 10.2 核心流程

| ✓ | 检查项 |
|---|--------|
| ☐ | 品牌 → 301 → 落地 Loading → 风控 → 下发列表 → 探活 → 主站，链路完整 |
| ☐ | PC 与 H5 **逻辑一致**，仅布局不同 |
| ☐ | 探活成功前地址栏 **保持落地域** |

## 10.3 风控与异常（重点）

| ✓ | 检查项 |
|---|--------|
| ☐ | 黑名单 / 刷机 / 脚本 → **空页**（E1），不下发主站 |
| ☐ | 刷机、脚本 **识别标准** 由技术补充（§3.3.2），产品不管实现细节 |
| ☐ | 频率限制 → **全屏** E6，与 E1 **不可混用** |
| ☐ | 探活全失败 → **全屏** E4，文案 **无** play-*.com |
| ☐ | 对用户 **不解释** 风控原因（禁止词见 §4.3） |

## 10.4 角色与交付

| ✓ | 检查项 |
|---|--------|
| ☐ | 运维：301 + 品牌零内容 |
| ☐ | 运营/风控：IP/设备黑名单维护 |
| ☐ | 技术：风控实现 + 加密下发 + 探活 + 异常页 |
| ☐ | 测试：第九章 A～D 用例可执行 |

## 10.5 成功标准

| ✓ | 检查项 |
|---|--------|
| ☐ | 品牌链进入率目标 ≥88%（D1）有基线对比 |
| ☐ | 品牌域 7 日内容类失效 **0 次**（D2） |

---

**文档结束 · 产品方案 v1.2**
