# 星线隐私中心技术概览

隐私中心提供网站与账号、星线 App、星企三类隐私说明，以及同语种下载、打印和发送邮件副本。政策正文为静态文件；邮件副本由独立服务读取已发布文本发送，不依赖用户登录 Account，也不导出任何用户账户资料。

## 入口与文档模型

公开入口为 [星线隐私中心](https://privacy.thestarline.cn/)。文档类型使用固定标识：`privacy`、`app-privacy`、`xingqi-privacy`。页面路径为相应 `.html`，下载文本位于同语种 `documents/` 下。

正文与法律站共用构建、本地化和审阅/正式版区分。50个语言或地区版本中，`zh-Hans` 使用根路径，其余使用 `/<locale>/`；导航、下载、语言切换和跨站链接共同保留语言。页面运行时不调用在线翻译。法律站生成机制见 [法律中心技术概览](https://document.thestarline.cn/legal/)。

正式政策描述具体产品当时的数据处理事实。本页解释其技术承载方式，不重写法律权利、保留期限或产品权限说明，也不能把旧政策里的产品描述当作最新源码功能证明。

## 邮件副本流程

页面“发送至邮箱”先取得同源挑战，再提交所选文档、语言和收件地址。服务使用 Node.js HTTP模块及腾讯云 SES SDK，与 Account登录进程独立。

| 接口 | 输入或输出 |
| --- | --- |
| `GET /api/policy-email/challenge` | 返回一次性 `token` 与 `expiresIn: 600` |
| `POST /api/policy-email` | JSON字段为 `email`、`document`、`locale`、`token`、空 `website` |
| 成功响应 | `{"ok":true}`，表示邮件服务商已给出受理标识 |

服务校验精确 Origin、有效来源地址、文档和语言白名单、空诱捕字段及邮箱格式；JSON请求最多 4096字节，不允许额外字段。邮箱检查拒绝换行与控制字符，域名按 IDN规则转为 ASCII并规范化；格式有效不表示收件箱存在。

挑战由时间、随机数和来源绑定材料构成，并使用专用密钥 HMAC签名。创建后至少等待 1秒、最多 10分钟内使用，且只能使用一次。来源发生变化、签名不符、已使用或超时需要重新取得挑战，不应重复发送同一令牌。

## 附件选择与受理结果

服务按白名单文档和语言从正式静态目录读取 TXT，不接受客户端指定任意文件路径、正文或邮件模板。文本长度限制为 16–200000字节，首行标题必须有效且不超过 150字符。附件名由文档标识和语言组成，内容使用所选语言的完整文本，不包含用户账户数据。

发送前先持久记录令牌使用及限流预留，再调用 SES模板并附加 TXT。服务商返回 MessageId后响应成功；这代表服务商受理，仍可能出现后续退信、垃圾邮件过滤或邮箱延迟。缺少受理标识或发送异常返回失败，不能仅因 HTTP请求已到服务器就显示“送达”。

失败尝试也会占用相应发送额度，以防故障时反复调用形成邮件轰炸。客户端不应对不确定结果无限自动重试；用户可以稍后重试，或直接下载同一份公开文本。

## 限流与持久数据

| 维度 | 当前代码限制 |
| --- | --- |
| 获取挑战 | 每来源地址每小时 30次 |
| 同一规范化邮箱 | 5分钟 1次，24小时 3次 |
| 发信来源地址 | 每小时 8次 |
| 全站 | 24小时 100次 |

限流账本保存时间、事件种类及 HMAC摘要键，不将收件邮箱或来源地址明文存入该账本。文件使用受限权限并通过临时文件替换保存，过期事件按 24小时窗口清理。这里的 24小时只对应限流账本，不能推断为邮件服务商日志或产品其他数据的统一保留时间。

收件地址仍会在发送请求中交给邮件服务商用于投递。应用日志只记录受限事件和错误码，避免回显地址与正文；部署方仍需核对反向代理、服务商和错误追踪的实际记录规则。专用签名密钥与邮件服务商凭据只在服务端配置，不属于公开页面资源。

## 失败、部署与验证边界

格式错误返回 400，非法来源或令牌返回 403，超大请求为 413，内容类型不符为 415，限流为 429；模板、文本、服务商或必要配置不可用时为 503。健康接口的 ready只检查本地服务条件，不代表真实邮件已发送或送达。

纯静态站点部署不会自动提供邮件副本 API。部署需要正确的同源路由、正式语言文本、独立服务、受保护账本以及服务商发送配置。正文和 TXT更新需要保持一致，避免页面已更新而邮件仍发送旧政策。

资料依据 2026-10-23 源码整理。历史政策发布与受控收件记录保持原日期；新部署、语言文本变更、邮件附件一致性及真实收件仍需独立验收。使用问题见 [支持中心](https://document.thestarline.cn/support/)。

## 源码依据

主要依据为 `privacy/` 页面与阅读脚本，以及 `legal/build_release.py`、`build_multilingual.py`、`localization.py`、`policy-mail/service.mjs`、`policy-mail/server.mjs` 和允许语言目录。这里只公开接口契约，不包含运行凭据、账本内容或真实收件资料。
