SuperAPI AI 工具集

security-nextjs

前端与建站

查看项目

更新于 10-15 22:40

技能介绍

用途:为 Next.js 应用(App Router 与 Pages Router)提供安全审计检查清单,重点排查环境变量泄露、Server Actions 鉴权缺失、API 路由鉴权、middleware 匹配范围与安全响应头。

主要能力:

  1. 环境变量暴露审计。NEXT_PUBLIC_* 会被打包进客户端 JavaScript,对所有人可见;无前缀变量仅服务端可用。next.config.js 中 env 字段的值即使没有 NEXT_PUBLIC_ 前缀也会被内联进客户端包,必须视为公开。审计命令:grep -r "NEXT_PUBLIC_" . -g ".env"。
  2. Server Actions 安全。Server Action 必须检查身份认证,并针对具体资源做授权校验;必须校验输入(如用 Zod 解析 FormData),不能直接信任客户端数据。
  3. API 路由安全。App Router 的 app/api//route.ts 与 Pages Router 的 pages/api/ 都需检查鉴权,注意 GET 公开而 POST 有鉴权的常见不一致问题。
  4. Middleware 安全。middleware.ts 中仅检查 cookie 是否存在并不充分,应验证 token;必须确认 matcher 覆盖所有受保护路由,包括 API 路由,避免出现保护缺口。
  5. 安全响应头。检查 next.config.js 中是否配置 X-Frame-Options、X-Content-Type-Options、Referrer-Policy 等,并确认 CSP 存在且不过于宽松。

常见漏洞与严重级别:NEXT_PUBLIC_ 泄露密钥为 CRITICAL;未鉴权的 Server Actions、未鉴权的 API 路由、middleware matcher 缺口、缺少输入校验、动态路由 IDOR 为 HIGH;dangerouslySetInnerHTML 为 MEDIUM;缺少安全响应头为 LOW。

辅助排查命令:rg -n 'env\s*:' next.config.;rg -l '"use server"' . | xargs rg -L '(getServerSession|auth(|getSession|currentUser)';fd 'route.(ts|js)' app/api/;rg 'dangerouslySetInnerHTML' . -g ".tsx" -g "*.jsx"。

适用场景:对 Next.js 项目做安全审计、代码评审或上线前检查。

限制:资料未提供具体安装方式、运行命令、收费信息或平台支持范围,暂未提供。