feat(gateway): 安全收口 —— CORS 生产收紧 + 限流按用户(T4.F)
- CORS:开发期缺省仍放行 *(便利);生产(APP_ENV=prod/GIN_MODE=release)未显式配 CORS_ALLOW_ORIGIN 则不发 ACAO 头(浏览器按同源拦截),逼运维显式配置允许的源 - 限流键改「已认证按 uid、未认证按 IP」:企业网多人共享出口 IP 不再互相拖累, 单用户换 IP 也绕不过;中间件顺序调整 Auth 前置于 RateLimit(否则取不到 uid) - isProd() 判定与 middleware.RequireAdmin 同口径 - live 冒烟:登录/认证请求正常(重排未破链),dev CORS 仍 * Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+4
-1
@@ -196,7 +196,10 @@ RBAC 未做,暂以单管理员账号代理;概览口径必须是**系统级*
|
||||
- [ ] KB 级联删事务化(kb.go:172 三库删一半失败仍删 PG → 不一致)| M
|
||||
- [ ] 预算硬顶兜底(budget.go ≤0 即无限,单任务可无限烧)| M
|
||||
- [ ] 审批 checkpoint 落盘失败重试(compose_compiler.go:323 现只 log → 任务永卡 waiting)| M
|
||||
- [ ] 安全:CORS 缺省去 `*`、限流按登录用户(非纯 IP)、`X-Session-ID` 防伪、开发 JWT 密钥外置、输入校验补强 | S×N
|
||||
- [~] 安全收口(部分):
|
||||
- [x] CORS 生产默认收紧 ✅ —— 开发期缺省仍 `*`(便利);生产(APP_ENV=prod/GIN_MODE=release)未显式配 CORS_ALLOW_ORIGIN 则**不发 ACAO 头**(浏览器同源拦截),逼显式配置。
|
||||
- [x] 限流按登录用户 ✅ —— RateLimit 键改「已认证按 uid、未认证按 IP」;middleware 顺序 Auth 前置于 RateLimit。live 冒烟通过(登录/认证请求正常,dev CORS 仍 *)。
|
||||
- [ ] `X-Session-ID` 防伪 / 开发 JWT 密钥外置 / 输入校验补强 | S(待)
|
||||
- [ ] 性能:ListModels 去 O(N²)(admin.go:48)、KB/Agent 列表分页、报告分章检索缓存、Milvus 批量 ensure | S~M
|
||||
- [ ] 可观测:panic 进 trace span + 回写通知、TTFT/token-s/各路检索耗时指标 | M
|
||||
- [ ] 配置化:切块大小 / history 轮数 / 各并发度 收口为统一可配 | S
|
||||
|
||||
Reference in New Issue
Block a user