背景
来自 2026-06-06/07 frontend-app/CHEK 上线前安全与滥用风险排查。backend-CHEK-media 位于 chekdata/CHEK monorepo,ops-bootstrap 网关公开路由包含 /api/chek-media/v1/media/*。
风险
- 媒体服务被外部当图床或大文件中转。
- 上传 MIME 伪装、脚本文件、异常图片在 CDN/浏览器公开。
- 审核中/私有媒体可通过 URL 或 ID 枚举访问。
- 永久公开 URL、bucket/path 泄露或无防盗链导致滥用。
要求
- 服务端限制文件大小、MIME allowlist、magic bytes,不依赖前端。
- 上传后默认 private/pending-hidden,自动内容审核通过后才进入 public。
- 签名 URL TTL 可配置,返回不泄露私有 bucket/credential。
- 公开读取必须校验 moderation/public visibility;私有/审核中资源不可匿名访问。
- CDN/TOS 防盗链、bucket/path/scope 隔离与 ops-bootstrap 配置联动。
验收
- fixture 测试:伪 PNG、超大文件、非 allowlist MIME 均 4xx。
- fixture 测试:pending/private/blocked media 不能匿名访问,不能通过改 ID 枚举。
- DEV smoke:错误 MIME/magic 不创建公开 URL;签名 URL 有 TTL。
背景
来自 2026-06-06/07 frontend-app/CHEK 上线前安全与滥用风险排查。
backend-CHEK-media位于chekdata/CHEKmonorepo,ops-bootstrap 网关公开路由包含/api/chek-media/v1/media/*。风险
要求
验收