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

1.0 KiB

安全设计

安全边界

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 天,过期自动删除。