# 安全设计(v2,docs/11 §18) ## 安全边界 ```text Internet -> Cloudflare Email Routing -> Email Worker | | HTTPS + HMAC + timestamp + nonce + body hash v Console(/internal/email/*) ``` 公网不得直接调用 /internal/email/authorize 与 /internal/email/ingest: 所有请求必须携带有效的 Worker credential 签名(docs/04)。 ## Cloudflare OAuth OAuth Token 加密存储,不进入前端和日志,也不作为 Worker credential。 ## Worker Credential 由 Console 在接入/部署时自动生成并注入 Worker 脚本,用户不手工配置。 支持撤销(立即生效)与轮换(轮换后已配置域名自动重新部署)。 ## 请求签名 所有 Worker -> Console 请求必须签名,签名覆盖 method、path、timestamp、nonce、body hash, Console 校验 Worker ID、timestamp 窗口、nonce 防重放、body hash、HMAC、credential 状态与 账号归属,防止篡改、重放与跨账号访问。 ## 隐私与日志 - 禁止记录 Cloudflare OAuth token、Worker secret、Webhook key、Authorization header 和完整 MIME; - reject reason 不泄露内部信息(只返回固定文案); - 不向客户端泄露数据库内部错误。 ## 附件与大小限制 限制单文件大小、单邮件总大小、文件数量和 MIME header 大小,避免资源耗尽。 ## SSRF Webhook endpoint 校验禁止 localhost、私网、link-local、metadata endpoint 与 DNS rebinding。 ## 数据保留 默认 Email TTL 为 1 天,过期自动删除;nonce/oauth state/delivery 均有清理路径。