Files
wmailhub/docs/08_SECURITY.md
T
BigCode d4c1334143 feat: WmailHub v1.0.0 —— Cloudflare Email Workers 邮件接收与转发平台(本地可用版本)
- Console:React 19 + antd 6.6.5 前端(登录 admin/admin)+ Hono 管理 API
  (Nodes/Domains/Mailboxes/Emails/Webhooks/Keys/OAuth/Admin)
- Node:Bun 转发节点(HMAC 签名、有限重试、心跳、结构化日志、优雅退出)
- Email Worker:Cloudflare email handler + 本地联调入口
- shared:HMAC 协议(docs/04)、wmh_ Key(32 位)、AES-GCM 加密、SSRF 防护
- 邮件管线:postal-mime 解析、附件、catch-all、限额、malformed 降级、TTL 1 天
- Webhook:签名投递、指数退避重试、SSRF 校验、投递日志
- API v1 + MCP(JSON-RPC,六工具,凭据 kind 隔离)
- Cloudflare OAuth:真实 + 本地 sim 模式,自动安装管线(幂等,无需手工命令)
- 测试:bun test 41 例(协议安全/管线/TTL/Webhook/SSRF/MCP/OAuth/鉴权)+ Playwright UI 冒烟
- LOGO/favicon 由 codex CLI 生成
2026-09-30 03:34:37 +08:00

48 lines
1.0 KiB
Markdown

# 安全设计
## 安全边界
```text
Cloudflare Email Worker
|
| authenticated request
v
Node
|
| TLS + HMAC
v
Console
```
## Cloudflare OAuth
OAuth Token 加密存储,不进入前端和日志,也不作为 Node credential。
## Node Credential
由 Console 自动生成。用户不手工配置。支持撤销和重新 enrollment。
## 请求签名
所有 Node -> Console 请求必须签名,签名覆盖 method、path、timestamp、nonce、body hash,防止篡改和 replay。
## Worker -> Node
Worker 使用 Node 专用 ingress secret。Worker 不应拥有 Console credential。
## 最小权限
Cloudflare OAuth 只申请业务所需权限。
## 日志
禁止记录 Cloudflare OAuth token、Node secret、Webhook secret、Authorization header 和完整邮件正文。
## 附件限制
限制单文件大小、单邮件总大小、文件数量和 MIME header 大小,避免资源耗尽。
## 数据保留
默认 Email TTL 为 1 天,过期自动删除。