用途:用于安全敏感的 Rails 开发与多租户边界审查,模式来自基于路径的多租户 SaaS 与单租户机器人 API 场景。
主要能力与要点: 租户架构采用路径前缀提取账户并注入 Current,配合身份、会话、账户级用户三层认证,跨账户会话无法越权;认证路由显式退出租户作用域,可按账户 slug 限定会话 Cookie 路径;周期任务需显式遍历租户并序列化 Current.account。
查询一律经所有权边界收敛,禁止裸露的 Model.find(params[:id]);对外分享使用不透明令牌而非内部 ID;ActiveStorage 附件挂到账户并对 blob 控制器做领域授权;撤销访问时异步清理派生数据。
认证硬化:魔法链接/验证码一次性、短时、secure_compare 比较并绑定已校验 Cookie;防枚举;API 令牌按 HTTP 方法限定权限,密钥仅短时展示一次;机器人认证作为显式模式默认拒绝;用 Rails 内置 rate_limit 限流,并按端点语义返回响应。
SSRF 基线:解析 DNS 并校验目标 IP,阻断回环、私有、链路本地及 IPv4 映射 IPv6 范围;请求固定到已校验 IP;创建与执行时双重校验;每次重定向重新解析校验;限制响应体积。
CSRF 与缓存:不缓存含表单/CSRF 令牌的页面;叠加 Sec-Fetch-Site 校验并以仅报告模式先行;设置 CSP 底线;私有应用发送 X-Robots-Tag: none。
授权默认值与滥用响应:模型谓词方法加控制器宏,越权返回 head :forbidden;封禁用户级联处理会话 IP、断开 ActionCable、异步清除内容,IP 封禁仅作用于变更请求且限公网地址。
入站 Webhook:先验签,再从源 API 重新获取权威状态,不信任载荷内容与顺序。
典型反模式包括未按租户隔离的广播频道、无所有权校验的租户数据推断、身份与用户混淆、未校验目标的外呼与重定向、绕过领域授权的 ActiveStorage 链接、散落的临时安全判断、永久可见的密钥,以及缺少限流的认证端点。
限制:资料未提供具体版本要求、性能影响或完整部署步骤。