fix(saas): P1 审计修复 — 连接池断路器 + Worker重试 + XSS防护 + 状态机SQL解析器
P1 修复内容: - F7: health handler 连接池容量检查 (80%阈值返回503 degraded) - F9: SSE spawned task 并发限制 (Semaphore 16 permits) - F10: Key Pool 单次 JOIN 查询优化 (消除 N+1) - F12: CORS panic → 配置错误 - F14: 连接池使用率计算修正 (ratio = used*100/total) - F15: SQL 迁移解析器替换为状态机 (支持 $$, DO $body$, 存储过程) - Worker 重试机制: 失败任务通过 mpsc channel 重新入队 - DOMPurify XSS 防护 (PipelineResultPreview) - Admin V2: ErrorBoundary + SWR全局配置 + 请求优化
This commit is contained in:
@@ -21,6 +21,8 @@ pub struct AppState {
|
||||
pub rate_limit_entries: Arc<dashmap::DashMap<String, Vec<Instant>>>,
|
||||
/// 角色权限缓存: role_id → permissions list
|
||||
pub role_permissions_cache: Arc<dashmap::DashMap<String, Vec<String>>>,
|
||||
/// TOTP 失败计数: account_id → (失败次数, 首次失败时间)
|
||||
pub totp_fail_counts: Arc<dashmap::DashMap<String, (u32, Instant)>>,
|
||||
/// 无锁 rate limit RPM(从 config 同步,避免每个请求获取 RwLock)
|
||||
rate_limit_rpm: Arc<AtomicU32>,
|
||||
/// Worker 调度器 (异步后台任务)
|
||||
@@ -37,6 +39,7 @@ impl AppState {
|
||||
jwt_secret,
|
||||
rate_limit_entries: Arc::new(dashmap::DashMap::new()),
|
||||
role_permissions_cache: Arc::new(dashmap::DashMap::new()),
|
||||
totp_fail_counts: Arc::new(dashmap::DashMap::new()),
|
||||
rate_limit_rpm: Arc::new(AtomicU32::new(rpm)),
|
||||
worker_dispatcher,
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user