CSRF Origin/Referer 校验守卫(会话墙后的第二道纵深防御)。
经 AuthModule 注册为全局 APP_GUARD,排在 SessionGuard 之后(401 先 403):对依赖 cookie 会话的非安全方法做 Origin 校验——补上「非 auth 端点仅靠 SameSite 缺省 lax」的 纵深防御缺口(生产若翻 SameSite=None 支持跨源前端,此墙独立兜底)。
AuthModule
APP_GUARD
SessionGuard
判据(乙·同源部署取向):
@Public()
Origin
Host
X-Forwarded-Host
getCorsConfig().origin
ALLOWED_ORIGINS
AUTH:CSRF_ORIGIN_MISMATCH
对非安全方法执行 Origin 校验:@Public 与安全方法放行,同源/白名单放行,否则 403。
@Public
执行上下文。
放行时为 true;校验失败时抛 403。
true
Origin 与同站不符(CSRF 校验失败)时。
CSRF Origin/Referer 校验守卫(会话墙后的第二道纵深防御)。
Remarks
经
AuthModule注册为全局APP_GUARD,排在SessionGuard之后(401 先 403):对依赖 cookie 会话的非安全方法做 Origin 校验——补上「非 auth 端点仅靠 SameSite 缺省 lax」的 纵深防御缺口(生产若翻 SameSite=None 支持跨源前端,此墙独立兜底)。判据(乙·同源部署取向):
@Public()面(存活探针 / 签名校验入站回调 / Stripe webhook)不依赖会话 → 跳过;Origin的 host 命中请求自身Host/X-Forwarded-Host→ 放行(scheme 无关; 攻击者无法伪造受害者请求的 Host 头,故同源天然安全·免登记本站 origin);getCorsConfig().origin(=ALLOWED_ORIGINS),不另立门户(覆盖跨源合法前端);AUTH:CSRF_ORIGIN_MISMATCH。