SuperAPI AI 工具集

rust-service-security

安全与审计

查看项目

更新于 10-16 00:02

技能介绍

用途:当 Rust 服务涉及身份、凭据、会话、Cookie、特权路由或敏感用户数据时使用,优先采用显式威胁检查与测试,而非乐观的处理器代码。

核心工作流:先识别受保护资产(账户访问、管理区、会话状态、改密、重置令牌、私有数据或特权操作),再追踪完整流程,包括请求解析、凭据查找、验证、会话变更、重定向与响应、日志和测试。要求密钥不进入日志与调试输出,密码、令牌、签名密钥和会话密钥使用 secret 包装;密码哈希与验证使用内存硬算法,并把 CPU 密集工作移出异步 reactor 线程;防止用户枚举,登录失败与密码重置流程不应暴露账户是否存在;明确设置 Cookie 与会话属性,如 HttpOnly、Secure、SameSite、path、生命周期、签名/加密及存储后端;在中间件或提取器边界保护路由,而非在每个处理器重复临时检查;为正常路径、认证失败、会话缺失、伪造 Cookie 或令牌、登出与会话轮换行为添加测试。

密码规则:实现或修改密码存储与验证前阅读 references/password-auth.md;存储 Argon2id 或项目所选哈希器生成的 PHC 字符串,绝不存明文或可逆加密密码;用安全 RNG 生成盐;对无效凭据使用恒定、通用响应;用 tokio::task::spawn_blocking 或专用阻塞抽象处理昂贵密码操作;哈希参数保持可配置以便升级。

Cookie 与会话规则:设置、读取、删除、签名或持久化 Cookie 与会话时阅读 references/cookies-sessions.md;Cookie 中绝不存原始凭据;特权应用优先使用服务端存储支撑的不透明会话 ID;登录与权限变更后轮换或更新会话状态;使用服务端存储时登出需在服务端删除会话;测试 Set-Cookie 头的安全属性。

路由保护:添加管理路由、提取器、守卫或框架中间件时阅读 references/auth-middleware.md;保持处理器类型化,例如 pub async fn admin_dashboard(user: AuthenticatedUser) -> Result<HttpResponse, AppError>,使处理器可假定认证已成功;需要认证的处理器避免可选用户查找,在框架允许时让缺失用户情况在签名层面不可能出现。

参考文件:references/password-auth.md 涉及 Argon2、PHC 字符串、用户枚举与阻塞密码工作;references/cookies-sessions.md 涉及 Cookie 标志、签名消息、服务端会话与登出;references/auth-middleware.md 涉及路由守卫、提取器与类型化会话访问。限制:资料未提供具体框架版本、依赖清单或完整示例代码。