forked from gongxuegit/tiku-backend.net
feat: add rate limiting and startup options validation
This commit is contained in:
17
README.md
17
README.md
@@ -75,6 +75,23 @@ Tiku.IntegrationTests # EF 模型/持久化约束测试
|
||||
- 不默认允许 credentials;如果后续需要 cookie 模式或管理后台单独域名,需要显式配置。
|
||||
- 多租户正式域名确定后,可以把 CORS 白名单从静态配置升级为“租户域名 + 平台管理域名”的集中策略。
|
||||
|
||||
### 限流
|
||||
|
||||
- API 接入 ASP.NET Core RateLimiter,作为全局兜底防线。
|
||||
- 匿名请求按 IP 分桶,已登录请求按用户分桶,减少同学校/同机构出口 NAT 下的误伤。
|
||||
- 默认使用固定窗口限流:
|
||||
- 生产默认 `600 / minute`
|
||||
- 开发默认 `1200 / minute`
|
||||
- 被限流时返回标准 `429 Too Many Requests`,响应体包含 `code = rate_limited` 和 `traceId`。
|
||||
- 当前先使用进程内限流;多实例部署时,需要上移到网关/负载均衡层,或接入 Redis 等集中式限流状态。
|
||||
|
||||
### 配置校验
|
||||
|
||||
- 关键配置使用 Options validation,并在启动阶段 `ValidateOnStart()`。
|
||||
- JWT 配置会校验 issuer、audience、签名密钥长度、access/refresh token 有效期范围。
|
||||
- CORS 配置会校验 Origin 必须是绝对 `http/https` origin;开启 credentials 时必须显式配置 origin。
|
||||
- RateLimit 配置会校验 permit/window/queue 范围,避免错误配置在运行时才暴露。
|
||||
|
||||
### 热路径集合处理
|
||||
|
||||
- API 项目引入 ZLinq,作为低分配集合处理工具。
|
||||
|
||||
Reference in New Issue
Block a user