Skip to content
综合安全架构报告:Next.js 16 漏洞分析及加固策略 (CVE-2025-66478)

综合安全架构报告:Next.js 16 漏洞分析及加固策略 (CVE-2025-66478)

SolanaLink Tech
画像: xAI Grok生成
39 分で読めます
0
0 件のコメント
8 回表示

综合安全架构报告分析了影响 Next.js 15.x 和 16.x 的严重 React2Shell 漏洞 (CVE-2025-66478),并提出了针对服务器组件、服务器操作和操作安全性的强化策略。

全面安全架构报告:Next.js 16 漏洞分析及加固策略 (CVE-2025-66478)

执行摘要

随着“服务器优先”前端框架的广泛应用,现代 Web 开发格局发生了翻天覆地的变化。作为这一变革的先锋,Next.js 通过其 React 服务器组件 (RSC) 的实现,从根本上重新定义了客户端与服务器之间的关系。虽然这种架构演进在性能和开发者体验方面带来了显著优势,但同时也打破了传统的安全边界,引入了复杂的新攻击面,许多工程团队难以有效防御。

本报告对 Next.js 框架的关键安全状况进行了详尽的分析,重点关注影响 16.0.6 版本和 15.x 分支的灾难性漏洞 CVE-2025-66478(俗称“React2Shell”)。此漏洞标志着 JavaScript 安全发展史上的一个分水岭,表明威胁模型已从客户端的 XSS 等小麻烦升级到无需身份验证的远程代码执行 (RCE),甚至可能导致服务器完全被攻破。

以下分析分为多个章节,详细阐述了漏洞的结构、具体的利用机制、全球威胁形势,并提供了一份全面而精辟的指南,指导如何在 2025 年强化 Next.js 应用。通过技术深度分析与运维策略的结合,本文档旨在成为保护现代 React 技术栈的权威参考。

第一部分:React2Shell危机(CVE-2025-66478)

1.1 漏洞简介

2025年12月,安全社区获悉React生态系统中存在一个严重漏洞,该漏洞也波及到Next.js框架。该漏洞在Next.js中被识别为CVE-2025-66478,其源头是React中的CVE-2025-55182。该漏洞的CVSS评分最高为10.0,表明其具有直接且灾难性的风险。¹ 该漏洞影响“Flight”协议——React服务器组件(RSC)用于在服务器和客户端之间传输数据的序列化机制。

与许多需要开发者使用特定不安全编码模式(例如通过不正确的字符串拼接进行 SQL 注入)的漏洞不同,此漏洞存在于框架本身的默认配置中。一个通过 create-next-app 生成并部署到生产环境的全新 Next.js 应用程序,即使没有任何自定义代码,也会立即面临未经身份验证的远程代码执行攻击。¹ 这种“默认安全”的缺陷促使整个行业展开大规模的协调应对,涉及云服务提供商、安全厂商和框架维护者。

该漏洞影响多个版本,具体包括 Next.js 版本 15.0.0 至 15.5.616.0.0 至 16.0.6。它尤其会影响使用 App Router 的应用程序,因为 App Router 严重依赖 RSC 架构。严格使用 Pages Router 的传统应用程序通常不受此漏洞影响,但混合型应用程序仍然存在风险。

1.2 技术深度解析:飞行协议与序列化

要理解 CVE-2025-66478 的机制,首先必须了解 React 服务器组件 (RSC) 的底层架构。RSC 允许服务器渲染组件并将其流式传输到客户端。这种流式传输是通过 Flight 协议 实现的,Flight 协议是一种自定义序列化格式,旨在处理标准 JSON 无法表示的复杂数据结构、Promise 和组件树。

当客户端与 Next.js 应用交互时(例如,在路由之间导航或调用服务器操作),它会向服务器发送一个序列化的有效负载。该有效负载描述了组件树的状态或函数的参数。服务器使用 react-server-dom-webpack 包(或其 Turbopack/Parcel 等效包)解析此有效负载,以重建 JavaScript 对象并执行请求的逻辑。

该漏洞存在于这些包的 requireModule 函数中的反序列化逻辑中。³ 反序列化器旨在动态加载客户端请求所需的模块。然而,它未能严格限制在重构过程中可以访问哪些属性和原型。序列化格式支持对有效负载中其他数据块的引用(使用类似 $@id 的语法),并允许属性访问路径(使用冒号,例如 $id:property)。

1.3 漏洞利用机制:从反序列化到远程代码执行

“React2Shell”漏洞的核心是一系列复杂的JavaScript引擎行为,这些行为利用了Flight协议反序列化器的宽松特性。安全研究人员已经证明,攻击者可以构造恶意HTTP POST请求,从而操纵服务器端对象重建的内部状态。³

攻击过程分为以下几个阶段:

  1. **伪造代码块:**攻击者发送一个多部分请求,其中一个部分定义了一个恶意对象结构,该结构模仿合法的 React 代码块。

  2. **原型污染:**通过使用引用语法(例如,$1:constructor:constructor),攻击者可以遍历被反序列化的对象的原型链。在 JavaScript 中,每个函数都有一个 constructor 属性,指向 Function 的构造函数。访问此属性可以让攻击者获得对全局 Function 对象的引用。

  3. **任意代码编译:**JavaScript 中的 Function 构造函数类似于 eval() 函数。如果使用字符串参数调用它,它会创建一个包含该代码的新函数。攻击载荷指示反序列化器使用恶意字符串(即攻击载荷)调用此构造函数。

  4. **执行:**反序列化器误以为它正在重建一个合法的模块导出,因此会执行新创建的函数。

在实际攻击中经常发现的特定有效载荷利用 Node.js 的 process.mainModule.require 来加载 child_process 模块。一旦 child_process 可用,攻击者就会调用 execSync 来运行 shell 命令。3

有效载荷结构通常类似于包含特殊标记的 JSON 流:

  • $@:表示数据块引用。

  • $B:表示 Blob 引用。

  • $1:constructor:constructor:指向函数构造函数的遍历路径。

由于此攻击发生在反序列化阶段——该阶段通常发生在应用程序的业务逻辑或高级身份验证中间件处理请求体之前——因此该攻击未经身份验证。服务器处理恶意数据流仅仅是为了了解请求的内容,并在处理过程中执行了攻击者的代码。

1.4 威胁形势:攻击者、攻击活动和影响

该漏洞于2025年12月3日披露后,威胁形势急剧恶化。该漏洞利用的“近乎100%可靠性”使其成为自动化僵尸网络和老练的国家支持黑客组织的主要目标。<sup>4</sup>

威胁行为者:来自亚马逊AWS和Wiz的情报报告已识别出一些正在积极利用此漏洞的特定组织。

  • Jackpot Panda: 一个与中国有关联的威胁组织,以快速利用 N 天漏洞而闻名。据观察,他们曾利用该漏洞部署持久性后门。

  • Earth Lamia: 另一个高级持续性威胁 (APT) 组织,已将“React2Shell”纳入其攻击工具库,用于初始访问。<sup>6</sup>

观察到的攻击活动:

这些攻击通常遵循可预测的杀伤链:

  1. **侦察:**初始载荷执行诸如 whoami、id 和 uname -a 之类的轻量级命令,以获取操作系统指纹和权限级别信息。攻击者还会使用 ip addr 或 ifconfig 命令映射网络接口。4

  2. **凭证窃取:**自动化脚本会抓取环境变量(例如使用 printenv 或直接在 Node 中访问 process.env),以窃取 AWS 密钥、数据库连接字符串和 API 密钥。

  3. **持久化:**部署“投放器”,例如 shell 脚本(在一次攻击活动中,sex.sh 是一个值得注意的文件名)或二进制可执行文件,旨在即使在服务器重启后也能保持访问权限。 4. **资源劫持:**大量攻击事件归因于加密货币挖矿活动,攻击者部署 XMRig 挖矿程序来利用被入侵的 Next.js 服务器的计算能力。<sup>5</sup>

  4. **横向移动:**在企业环境中,被入侵的前端服务器被用作攻击跳板,攻击原本与公共互联网隔离的内部微服务和数据库。<sup>7</sup>

1.5 事件响应和补丁策略

对于任何运行 Next.js 15 或 16 的组织而言,必须立即采取全面有效的应对措施。该漏洞非常严重,不容拖延。

1.5.1 版本补丁

主要的也是唯一彻底的补救措施是将框架升级到包含已修补反序列化器的版本。

  • 已修复版本:

  • Next.js 16.0.7 或更高版本。

  • Next.js 15.5.7 或更高版本。

  • Next.js Canary 15.6.0-canary.58 或更高版本。

  • React 19.2.1 或更高版本。

  • 自动化:

Vercel 发布了一个专用工具来协助升级,并确保嵌套依赖项(例如 react-dom)也正确对齐。

npx fix-react2shell-next

此命令执行确定性的版本更新,并验证依赖关系树的完整性。8

1.5.2 版本验证

应用补丁后,工程团队必须验证构建产物中是否不再存在存在漏洞的软件包。

  • 运行 npm audit 或 pnpm audit 以确认不存在任何高危漏洞。

  • 手动检查 package-lock.json 或 pnpm-lock.yaml 文件,确保 react-server-dom-webpack 版本为 19.0.0 或更高版本(特别是已打补丁的版本)。

  • 如果可用,请使用运行时分析工具(例如 Snyk、Wiz)扫描已部署的容器镜像。

1.5.3 后渗透遏制

如果服务器在 12 月 3 日到打补丁期间暴露于互联网,则必须假定该服务器已被入侵。

  1. **轮换密钥:**所有应用程序可访问的环境变量(AWS 密钥、数据库密码、Stripe 密钥)必须立即轮换。该漏洞可轻松窃取 process.env 文件。

  2. **重新部署基础设施:**切勿尝试“清理”已入侵的服务器。终止实例或 Pod,并使用已修补的镜像部署全新的基础设施。

  3. **取证分析:**检查日志,查找与未知 IP 地址的出站连接或临时目录 (/tmp) 中的文件系统修改。

第二部分:Next.js 16 中的架构安全

“React2Shell”漏洞是更广泛的架构转变的一个征兆。Next.js 16 完成了向“服务器组件优先”范式的过渡。理解这种架构是确保其安全性的前提。

2.1 范式转变:服务器组件与客户端组件

在“页面路由”时代(Next.js 12 及更早版本),服务器和客户端的区别基于文件(pages/api 与 pages/index.js)。在“应用路由”(Next.js 13 及更高版本)中,默认组件是服务器组件

  • 服务器组件: 完全在服务器端渲染。它们的代码永远不会发送到浏览器。它们可以直接访问后端(数据库、文件系统)。

  • 客户端组件: 标记为“use client”。它们在服务器端渲染(预渲染),然后在客户端进行水合。它们可以访问浏览器 API,但不能直接访问安全的后端资源。

这种转变通过减小 JavaScript 包的大小来提高性能,但也使安全模型变得复杂。边界不再是网络调用(fetch),而是 prop 传递。从服务器组件向客户端组件传递数据涉及序列化(使用 Flight 协议)。

2.2 网络边界:理解“模糊的界限”

序列化边界是新的攻击面。当开发者将对象从服务器组件传递到客户端组件时:

// ServerComponent.tsx

const user = await db.user.findFirst();

return <ClientComponent user={user} />;

用户对象被序列化并发送到浏览器。如果数据库查询返回敏感字段(例如 password_hash、internal_admin_flags、ssn),即使客户端组件从未渲染过这些字段,它们现在也会暴露给客户端。这些数据存在于页面源代码中(RSC 有效负载脚本标签中)。

这种“默认数据泄露”的风险非常严重。在传统的 REST API 中,开发者会显式地定义 JSON 响应。而在 RSC 中,“响应”指的是传递给客户端组件的任何 props。

2.3 数据泄露风险与 Taint API

为了解决这个问题,React 19 和 Next.js 16 引入了 Taint API(experimental_taintObjectReference)。该 API 允许开发者将特定对象标记为“受污染”,从而有效地将其指定为“仅限服务器端的数据”。

机制:

如果将受污染的对象传递给客户端组件,React 会在运行时抛出一个硬性错误,从而阻止渲染并防止数据泄露。

实施策略: 强大的安全态势要求在源头——数据访问层 (DAL)——立即对数据进行“标记”。

// lib/data.ts

import { experimental_taintObjectReference } from 'react';

import 'server-only';

export async function getUser(id) {

const user = await db.query(...);

// 标记原始用户对象

experimental_taintObjectReference(

'不要将原始用户对象传递给客户端。请使用 DTO。',

user

);

return user;

}

这强制开发人员在将数据传递给 UI 之前,创建一个仅包含用于公开使用的字段的数据传输对象 (DTO)。9

第三部分:强化服务器操作和 API

服务器操作是指在服务器端执行但可由客户端调用的函数,类似于远程过程调用 (RPC)。它们简化了数据修改,但也引入了重要的安全隐患。

3.1 服务器操作的“公开性”

人们普遍误解,如果服务器操作没有显式地绑定到按钮,它们就是内部的或“私有的”。实际上,每个导出的服务器操作都会创建一个公共的 HTTP 端点(可通过带有特定操作 ID 标头的 POST 请求访问)。这意味着它们与任何公共 API 端点一样,都面临着相同的安全威胁。<sup>11</sup>

攻击者可以枚举这些 Action ID(即哈希值),或者从客户端包中提取它们,并使用任意有效载荷直接调用它们——这正是 React2Shell 漏洞被利用的方式。

3.2 输入验证策略(Zod 集成)

由于服务器操作会从客户端接收原始输入(通常是 FormData),因此运行时验证是必需的。TypeScript 类型会在运行时被清除,因此无法防止恶意攻击者构造原始 HTTP 请求,从而无法提供任何安全保障。

Zod模式:Zod是Next.js 16中验证的行业标准。每个服务器操作都应该以验证步骤开始。

// actions.ts

'使用服务器';

import { z } from 'zod';

import { auth } from './auth';

const schema = z.object({

email: z.string().email(), quantity: z.number().int().positive(), });

export async function updateOrder(formData: FormData) {

// 1. 身份验证检查(必填)

const session = await auth();

if (!session) throw new Error('未授权');

// 2. 输入验证(必填)

const parsed = schema.safeParse({ email: formData.get('email'),

quantity: Number(formData.get('quantity')),

});

if (!parsed.success) {

return { error: parsed.error.flatten() };

}

// 3. 授权检查(必填)

// 此用户可以修改此特定订单吗?

//... 业务逻辑...

}

这种模式确保格式错误的数据(例如原型污染对象)在接触任何业务逻辑或数据库查询之前就被模式解析器拒绝。<sup>13</sup>

3.3 身份验证和授权模式

Next.js 16 的安全机制不再依赖全局中间件阻止,而是转向细粒度的、基于操作的授权。虽然中间件(在 Next.js 16 中为了清晰起见,现在通常被称为 proxy.ts)对于大范围重定向非常有用(例如,将未经身份验证的用户重定向到 /dashboard),但由于服务器操作的 RPC 特性,它无法有效地保护服务器操作。

授权最佳实践:

  • 每次操作都验证身份: 切勿因为用户访问受保护页面就假定其已通过身份验证。操作端点是独立的。

  • 上下文授权: 检查用户是否拥有其尝试修改的资源。

  • 使用库: 利用 Auth.js (NextAuth)Clerk 等库,它们提供专为 RSC.15 设计的服务器端辅助函数(auth()、currentUser())。

3.4 CSRF 和来源验证

跨站请求伪造 (CSRF) 仍然是一个值得关注的问题。由于服务器操作始终是 POST 请求,Next.js 实现了一种默认的保护机制,即比较 Origin 和 Host 标头。如果它们不匹配,则请求将被中止。<sup>16</sup>

限制与配置:在复杂的托管环境中(例如,位于企业反向代理、负载均衡器之后,或使用单独的后端域时),如果标头被移除,则此默认检查可能会失败或被绕过。

  • serverActions.allowedOrigins: 如果开发者的架构涉及多个来源,则必须在 next.config.js 中显式配置此项。

// next.config.js

module.exports = {

experimental: {

serverActions: {

allowedOrigins: ['my-app.com', 'payment-processor.com'],

},

},

};

此白名单确保只有合法的前端才能调用服务器端逻辑,从而缓解 CSRF 攻击。<sup>16</sup>

第四部分:客户端防御与内容安全

虽然服务器端是新的前沿阵地,但像 XSS 这样的客户端漏洞并未消失。Next.js 16 中水合机制的复杂性为注入提供了新的途径。

4.1 水合时代的 XSS

React 的自动转义机制可以抵御大多数 XSS 攻击,但水合不匹配仍然可能被利用。如果服务器渲染的内容与客户端渲染的内容不同(由于浏览器扩展或 HTML 格式错误),React 可能会以允许注入的方式修改 DOM。

危险区域:

  • dangerouslySetInnerHTML:名称本身就是一个警告。如果使用此方法,则必须在渲染之前使用 DOMPurify(如果可能,最好在服务器端)对内容进行清理。17

  • **第三方脚本:**通过 next/script 加载的脚本必须谨慎管理。 * 用户输入反射: 将 URL 参数直接反射到 DOM(例如,搜索栏)而不进行清理会导致反射型 XSS 攻击。

4.2 内容安全策略 (CSP):Nonce 与 SRI

内容安全策略是抵御 XSS 攻击的最强防御手段。Next.js 16 引入了与流式传输和 RSC 兼容的 CSP 实现新方法。

Nonce 策略(动态):

对于需要内联脚本的应用程序(Next.js 水合至关重要),加密的 Nonce(一次性使用的数字)是标准解决方案。

  1. 生成 Nonce: 在 proxy.ts(中间件)中创建一个随机 UUID。

  2. 设置标头: 添加 Content-Security-Policy 标头,并包含 'nonce-{uuid}'。 3. 传递给框架: Next.js 会自动检测请求头中的 nonce 值,并将其应用于所有生成的脚本标签。

权衡: 这会强制整个页面进行动态渲染。由于 nonce 值必须在每次请求时都发生变化,因此您将失去静态站点生成 (SSG) 的优势。<sup>18</sup>

子资源完整性 (SRI)(实验性/静态):

对于需要静态生成的对性能要求极高的网站,Next.js 16 提供了实验性的 SRI 支持。构建过程不再使用 nonce 值,而是计算脚本的哈希值 (SHA-256) 并将其添加到内容安全策略 (CSP) 中。

  • 配置: next.config.js 中的 experimental.sri 文件。

  • 优势: 与 CDN 和静态缓存兼容。 * 限制: 目前需要 Webpack(Turbopack 支持正在开发中),且处于实验阶段。<sup>18</sup>

4.3 安全标头和边缘防御

除了内容安全策略 (CSP) 之外,一系列 HTTP 标头构成了第一道防线。这些标头应在 next.config.js 或中间件/代理中进行设置。

标头用途
X-Content-Type-Optionsnosniff防止 MIME 类型嗅探攻击。
X-Frame-OptionsDENY 或 SAMEORIGIN防止点击劫持(UI 重定向)。
Referrer-Policystrict-origin-when-cross-origin控制 Referer 标头中的信息泄露。
Permissions-Policy(严格列表)限制对浏览器功能(摄像头、麦克风)的访问。
Strict-Transport-Securitymax-age=63072000; includeSubDomains; preload强制使用 HTTPS。

表 2:Next.js 16.20 的基本安全标头

第五部分:卓越运营与DevSecOps

如果运维环境薄弱,仅加强代码安全是不够的。“React2Shell”漏洞利用事件凸显了强大的检测和隔离能力的重要性。

5.1 依赖管理与供应链

软件供应链是主要的攻击途径。react-server-dom-webpack漏洞就是一个供应链问题——该框架使用的某个依赖项存在缺陷。

  • 审计流程: 将npm audit或pnpm audit集成到CI/CD流水线中。阻止包含严重漏洞的构建。

  • 锁定文件: 提交package-lock.json或pnpm-lock.yaml文件,以确保不同环境下依赖项版本的一致性。

  • ESLint: 使用eslint-plugin-next插件和core-web-vitals规则集。Next.js 16支持迁移到ESLint“扁平配置”。确保安全规则(例如,no-img-element、no-sync-scripts)已启用。<sup>22</sup>

5.2 容器安全与运行时保护

大多数 Next.js 应用程序运行在 Docker 容器中。加固这些容器可以限制远程代码执行 (RCE) 的影响范围。

  • 最小权限用户: 官方的 Next.js Dockerfile 示例会创建一个名为 nextjs 的用户。切勿以 root 用户身份运行应用程序。 如果攻击者通过 RCE(例如 React2Shell)获取了 shell,以受限用户身份运行可以防止他们修改系统文件或安装 rootkit。

  • 最小化基础镜像: 使用 Alpine Linux 或“无发行版”镜像。这些镜像缺少 curl、wget 甚至 shell (/bin/sh) 等常用工具,从而大大增加了攻击者投放脚本的运行难度。<sup>4</sup>

  • 只读文件系统: 将应用程序代码挂载为只读。这可以防止攻击者修改源文件以注入持久性后门。

5.3 可观测性、日志记录和异常检测

你无法阻止你看不见的东西。“React2Shell”漏洞利用会留下痕迹,而标准访问日志可能会遗漏这些痕迹。

  • WAF 日志: 监控与 CVE 签名匹配的被阻止请求(例如,包含构造函数或 $@ 的请求体)。这些日志中的峰值表明存在定向扫描。

  • 应用程序日志: Next.js 16 改进了日志可见性。确保启用结构化日志记录(JSON 格式),以便捕获请求体和请求头进行分析。

  • 运行时监控 (RASP): 对于高安全性环境,部署运行时应用程序自我保护 (RASP) 代理(例如,Datadog Security、Dynatrace)。这些工具会接入 Node.js 运行时环境,并能检测特定的远程代码执行 (RCE) 特征——例如进程生成 cmd.exe 或 /bin/sh——并立即终止该进程。<sup>24</sup>

## 结论

Next.js 16 的发布以及同时发现的严重漏洞“React2Shell”(CVE-2025-66478)标志着 React 生态系统成熟度的一个关键时刻。该框架已从一个视图库发展成为一个全面的全栈 Web 操作系统。伴随这种强大功能而来的是管理“服务器级”威胁模型的责任。

该漏洞——默认配置中未经身份验证的远程代码执行缺陷——鲜明地提醒我们,我们所依赖的抽象层(例如服务器组件)构建于复杂的序列化协议之上,而这些协议可能被篡改。当务之急很明确:立即将补丁升级到 16.0.7 或 15.5.7 及更高版本。

然而,长远来看,关键在于架构的严谨性。Next.js 16 的安全性并非插件或中间件,而是一种结构性实践。它要求严格使用数据访问层,实现 Taint API 以防止数据泄露,强制通过 Zod 验证每个服务器操作,并在边缘和容器层面部署纵深防御策略。通过采用本报告中详述的整体安全策略,工程团队既可以充分利用 Next.js 16 的强大功能,又能保护其基础设施免受 2025 年复杂多变的威胁。

参考文献

  1. 严重安全警报:React 和 Next.js 中的未经身份验证的远程代码执行漏洞 - Upwind,访问日期:2025 年 12 月 9 日,https://www.upwind.io/feed/critical-security-alert-unauthenticated-rce-in-react-next-js-cve-2025-55182-cve-2025-66478

  2. Next.js - endoflife.date,访问日期:2025 年 12 月 9 日,https://endoflife.date/nextjs

  3. React2Shell:CVE-2025-55182 - TryHackMe,访问日期:2025 年 12 月 9 日,https://tryhackme.com/room/react2shellcve202555182

  4. 利用React 服务器组件中的严重漏洞(更新于 2025 年 12 月 8 日),访问日期:2025 年 12 月 9 日,https://unit42.paloaltonetworks.com/cve-2025-55182-react-and-cve-2025-66478-next/

  5. React2Shell (CVE-2025-55182):React 严重漏洞 | Wiz Blog,访问日期:2025 年 12 月 9 日,https://www.wiz.io/blog/critical-vulnerability-in-react-cve-2025-55182

  6. 中国相关网络威胁组织迅速利用 React2Shell 漏洞 (CVE-2025-55182) | AWS 安全博客 - Amazon.com,访问日期:2025 年 12 月 9 日,https://aws.amazon.com/blogs/security/china-nexus-cyber-threat-groups-rapidly-exploit-react2shell-vulnerability-cve-2025-55182/

  7. React 服务器组件严重漏洞 CVE-2025-55182 - Trend Micro,访问日期:2025 年 12 月 9 日,https://www.trendmicro.com/en_us/research/25/l/critical-react-server-components-vulnerability.html

  8. 安全公告:CVE-2025-66478 - Next.js,访问日期:2025 年 12 月 9 日https://nextjs.org/blog/CVE-2025-66478

  9. Next.js 16,访问日期:2025年12月9日,https://nextjs.org/blog/next-16

  10. experimental_taintObjectReference,访问日期:2025年12月9日,https://react.dev/reference/react/experimental_taintObjectReference

  11. 指南:数据安全 - Next.js,访问日期:2025年12月9日,https://nextjs.org/docs/app/guides/data-security

  12. Next.js 服务器操作和前端安全 - QueryPie,访问日期:2025年12月9日https://www.querypie.com/features/documentation/blog/20/nextjs-server-action-security

  13. 如何使用服务器操作创建表单 - Next.js,访问日期:2025 年 12 月 9 日,https://nextjs.org/docs/app/guides/forms

  14. 如何在 Next.js 中使用 useActionState 处理 Zod 验证错误? #86447 - GitHub,访问日期:2025 年 12 月 9 日,https://github.com/vercel/next.js/discussions/86447

  15. 指南:身份验证 - Next.js,访问日期:2025 年 12 月 9 日,https://nextjs.org/docs/app/guides/authentication

  16. 服务器操作是否需要 CSRF 令牌? :r/nextjs - Reddit,访问日期:2025 年 12 月 9 日,https://www.reddit.com/r/nextjs/comments/1mwn3d6/do_we_need_csrf_tokens_with_server_actions/

  17. React XSS 指南:理解与预防 - StackHawk,访问日期:2025 年 12 月 9 日,https://www.stackhawk.com/blog/react-xss-guide-examples-and-prevention/

  18. Next.js 支持政策 | Next.js(作者:Vercel)- React 框架,访问日期:2025 年 12 月 9 日,https://nextjs.org/support-policy

  19. 如何为您的 Next.js 应用程序设置内容安全策略 (CSP),访问日期:2025 年 12 月 9 日,https://nextjs.org/docs/app/guides/content-security-policy

  20. Next.js 2025 完整安全指南:身份验证、API 保护和最佳实践,访问日期:2025 年 12 月 9 日,https://www.turbostarter.dev/blog/complete-nextjs-security-guide-2025-authentication-api-protection-and-best-practices

  21. Next.js 安全检查清单 - Arcjet 博客,访问日期:2025 年 12 月 9 日https://blog.arcjet.com/next-js-security-checklist/

  22. @next/eslint-plugin-next - npm,访问日期:2025年12月9日,https://www.npmjs.com/package/@next/eslint-plugin-next

  23. 配置:ESLint - Next.js,访问日期:2025年12月9日,https://nextjs.org/docs/app/api-reference/config/eslint

  24. CVE-2025-55182:React2Shell 严重漏洞 — 漏洞描述及应对措施 - Dynatrace,访问日期:2025年12月9日https://www.dynatrace.com/news/blog/cve-2025-55182-react2shell-critical-vulnerability-what-it-is-and-what-to-do/

コメント

コメント (0)