You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js通过Server Actions获取HTTP-ONLY Cookie是否存在安全漏洞?

Next.js 13.4 该认证方案的安全分析

HTTP-ONLY Cookie 的核心设计目的就是禁止前端 JavaScript 访问,以此防范 XSS 攻击窃取令牌。但如果通过 Server Action 将 Cookie 的值传回客户端组件,相当于把原本受保护的令牌暴露在了浏览器的 JS 环境中——一旦页面发生 XSS 漏洞,攻击者可以轻松通过脚本窃取这个令牌,和将令牌存在 localStorage 或普通 Cookie 里没有任何区别,完全失去了 HTTP-ONLY 的防护意义。

正确的安全方案(规避漏洞)

不需要把 HTTP-ONLY Cookie 的值返回给客户端,直接利用 Server Action 的服务器执行特性即可:

  • 客户端组件调用 Server Action 时,浏览器会自动携带 HTTP-ONLY Cookie 到服务器;
  • Server Action 在服务器端直接读取该 Cookie,验证其中的 JWT 令牌,完成业务逻辑;
  • 整个过程中,客户端 JS 完全接触不到令牌的值,HTTP-ONLY 的 XSS 防护能力得以保留。

该方案下的 XSS 与 CSRF 防护有效性

如果采用上述正确流程,方案的安全性是有保障的:

  • XSS 防护:HTTP-ONLY Cookie 无法被前端 JS 读取,XSS 攻击者无法窃取令牌;
  • CSRF 防护:Next.js 的 Server Action 默认启用 CSRF 保护(依赖内置的表单令牌机制),结合 HTTP-ONLY Cookie 认证,跨域攻击者无法伪造有效的 Server Action 调用——因为跨域请求无法获取 CSRF 令牌,也无法绕过浏览器的同源策略自定义请求头。

总结

你提到的方案中,将 HTTP-ONLY Cookie 值返回给客户端的操作是致命漏洞,彻底破坏了 HTTP-ONLY 的防护作用。只要去掉这个步骤,直接在 Server Action 中使用 HTTP-ONLY Cookie 完成认证,就能有效降低 XSS 和 CSRF 攻击风险,是安全可行的方案。

内容的提问来源于stack exchange,提问作者Darren Zou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 23:35:06