Identity & Security
多层级安全防御
与访问控制模型。
StudyPulse Cloud AI 从密钥注入、D1 存储、认证挑战到会话隔离,在每个边界执行严格的最小权限与防滥用约束。
01 / 分层防御
把密钥、状态、请求和后台分开保护。
安全设计不是一个单独的中间件,而是从 Secret 注入、D1 写入、认证挑战到响应头的一组互补约束。
-
01
Key / Session hash-only 客户端 API Key 与 Session Token 原文不入库;MiniMax、Resend、管理员 Token 只通过 Cloudflare Secrets 注入运行时。
-
02
Constant-time comparison Token 与 CSRF 值使用常量时间比较,降低时序攻击风险;D1 查询全部使用 prepared statements。
-
03
Cloudflare Access + CSRF 后台通过 Cf-Access-Jwt-Assertion 或降级 ADMIN_API_TOKEN 鉴权;状态变更接口还需 SameSite=Strict Cookie 与 X-CSRF-Token。
-
04
Abuse controls 验证码 5 次错误锁定、10 分钟过期、1 分钟发送间隔;邮箱黑名单、登录限流和统一错误信息减少滥用与信息泄露。
-
05
Security response headers 全站启用 X-Content-Type-Options、X-Frame-Options: DENY、Referrer-Policy、Permissions-Policy 与 X-XSS-Protection。
02 / 计量语义
精确额度计量与调用失败保护机制。
API Key 按请求次数或 Token 计量;用户会员按 usage_records 分日请求与月 Token。鉴权失败、上游失败和 Worker 错误不扣额度。
| 层级 / 维度 (Layer) | 计量数据 (Metric) | 结算与保护规则 (Rule & Protection) |
|---|---|---|
| API Key | request_count / token_count |
成功调用后自增;request_limit 可按 count 或 tokens 模式设置。 |
| Membership | usage_records |
free 100 次/日 + 1M tokens/月;plus 1000 次/日 + 10M tokens/月;pro 不限。 |
| Admin | role = admin |
跳过用户会员额度限制,但仍完整保留请求日志与审计语义。 |
03 / 统一入口
统一身份中心的第一屏。
登录页把密码登录、邮箱验证码和 GitHub OAuth 放在同一个入口;后续 Session、会员和用量上下文都从这里开始建立。
StudyPulse.CloudAI