权限、限流与审计
管理员权限
第一个注册用户自动成为管理员。后续用户默认是普通用户,通常需要邀请码注册。
备份中心、用户管理、邀请码等管理功能会检查:
text
role === "admin" && status === "active"禁用用户即使 token 仍未过期,也会在认证后被拒绝。
限流
限流由 src/services/ratelimit.ts 和 src/config/limits.ts 控制。重要限制包括:
| 场景 | 默认值 |
|---|---|
| 公开接口 | 60 次/分钟/IP |
| 公开只读接口 | 120 次/分钟/IP |
| 敏感公开/认证接口 | 30 次/分钟/IP |
| 认证 API | 200 次/分钟/用户 |
| 注册接口 | 5 次/分钟/IP |
| refresh token | 30 次/分钟/IP |
| 密码提示 | 1 次/分钟/IP,3 次/小时/IP |
| 登录失败锁定 | 10 次失败后锁定 2 分钟 |
登录失败记录保存在 login_attempts_ip,会低频清理过期记录。
大请求限制
普通 JSON API 默认最大 25 MiB。文件上传路径例外,例如:
- 附件上传
- Send 文件上传
- 备份导入
文件大小另外由附件/Send 限制控制。
审计日志
审计日志保存在 audit_logs 表。当前会记录:
- 首个管理员注册
- 邀请注册
- 密码变更
- 备份设置更新
- 手动/定时远程备份成功或失败
- 实例备份导出
- 实例备份导入
- 远程备份删除
当前实例备份不会导出审计日志。审计日志更偏运行痕迹,不是密码库核心数据。