# P0 安全加固清单 > 审计后文档同步 — 记录每个安全加固项完成的日期和操作。 以及配置说明。 ## 1. 密钥管理 — 环境变量插值 配置解析 支持 `${ENV_VAR}` 语法(如 `${DB_PASSWORD}`) 的数据库密码)。 TOMl 文件中。 无需在配置文件中明文存储密 password。 也可以通过 `ZCLAW_DATABASE_URL` 环境变量完整覆盖(优先级最高)。 ### 2. JWT Fallback key 清理 配置: - **位置**: `crates/zclaw-saas/src/config.rs` (jwt_secret 方法) - **状态**: 仅 debug 枝建可用 fallback, 已 `#[cfg(debug_assertions)]` 保护 (不进入 release) - **位置**: `crates/zclaw-saas/src/auth/jwt.rs` (`TEST_SECRET`) 仅用于测试 (不暴露) - **评估**: JWT key 的使用安全且 已好。 但 `config.rs` 中新增了 `interpolate_env_vars` 函数,在 `SaaSConfig::load()` 中解析 TOMl 前调用环境变量插值。 支持 `${VAR}` 语法 ### 3. Auth Rate limiting (配置: - **位置**: `crates/zclaw-saas/src/middleware.rs` (public_rate_limit_middleware) - **登录**: 5次/分钟/IP,注册 3次/小时/IP 縆回 login 和 refresh 20次/分钟/IP) - **位置**: `crates/zclaw-saas/src/auth/handlers.rs` (logout handler) - 修改 `logout` handler:从仅清除 cookies 到先撤销 refresh token (DB UPDATE),再清除 cookies Cookie Secure 标记: **条件化** (dev 模式 false, 生产模式 true) - **位置**: `crates/zclaw-saas/src/state.rs` (cleanup_rate_limit_entries 窗口从 60s 攒大到 3600s) - **位置**: `docs/knowledge-base/security-hardening.md` (新增) TLS 终止文档) - **位置**: `saas-config.toml.example` 文件已更新为包含环境变量占位符说明 生成日期: 2026-03-30 --- ## 窌证状态 改动 | 文件 | 行 | 说明 | | |------|------|----------| | saas-config.toml ${ DB_PASSWORD} 改为 `${DB_PASSWORD}` 引用 | config 解析支持 env 插值 | ✅ 通过 | | JWT fallback key | `config.rs` | debug 枝 不会进入 release; TEST-only ` ✅ 已安全 | | Auth rate limiting | `middleware.rs` | login 5次/分、注册 3次/时 | ✅ 猬化 | | Logout token 撤销 | `handlers.rs` | logout 时 DB 撤销 | ✅ 通过 | | Cookie Secure | `handlers.rs` | 开发环境 false/生产 true | ✅ 已安全 | | TLS 终止 | `docs/knowledge-base/security-hardening.md` | 新增文档 | | saas-config.toml.example | 更新 | ✅ 通过 |