用途:为 Next.js 应用(App Router 与 Pages Router)提供安全审计检查清单,重点排查环境变量泄露、Server Actions 鉴权缺失、API 路由鉴权、middleware 匹配范围与安全响应头。
主要能力:
- 环境变量暴露审计。NEXT_PUBLIC_* 会被打包进客户端 JavaScript,对所有人可见;无前缀变量仅服务端可用。next.config.js 中 env 字段的值即使没有 NEXT_PUBLIC_ 前缀也会被内联进客户端包,必须视为公开。审计命令:grep -r "NEXT_PUBLIC_" . -g ".env"。
- Server Actions 安全。Server Action 必须检查身份认证,并针对具体资源做授权校验;必须校验输入(如用 Zod 解析 FormData),不能直接信任客户端数据。
- API 路由安全。App Router 的 app/api//route.ts 与 Pages Router 的 pages/api/ 都需检查鉴权,注意 GET 公开而 POST 有鉴权的常见不一致问题。
- Middleware 安全。middleware.ts 中仅检查 cookie 是否存在并不充分,应验证 token;必须确认 matcher 覆盖所有受保护路由,包括 API 路由,避免出现保护缺口。
- 安全响应头。检查 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 项目做安全审计、代码评审或上线前检查。
限制:资料未提供具体安装方式、运行命令、收费信息或平台支持范围,暂未提供。