用途:该技能用于为 Next.js 应用生成、创建或配置 Content Security Policy(CSP)响应头,以防止 XSS 等注入类攻击。
主要能力: 一、资源分析。用 Grep 检索脚本、样式表、图片、字体、API/连接、媒体等外部引用,汇总 CDN、API、分析、字体、图片等唯一域名。 二、策略选择。提供三种策略:基于 nonce(推荐,适配 Next.js App Router 内联脚本)、基于哈希(适合静态内容,需在内容变更后重建哈希)、unsafe-inline(最不安全,仅用于迁移期)。 三、指令生成。生成 default-src、script-src、style-src、img-src、font-src、connect-src、frame-src、object-src、base-uri、form-action、frame-ancestors、upgrade-insecure-requests 等指令,并按发现的域名补充相应指令。 四、nonce 实现。提供 lib/csp/nonce.ts 的 generateNonce、getNonce,以及在 middleware.ts 中生成 nonce、通过 x-nonce 与 Content-Security-Policy 头传递,并配置 matcher 排除 API 和静态资源。 五、next.config.ts 方案。也可通过 headers() 输出 CSP;示例中包含开发所需的 'unsafe-eval'、'unsafe-inline',并在生产环境过滤。 六、环境区分。按 NODE_ENV 在开发与生产间切换指令。 七、违规上报。提供 app/api/csp-report/route.ts 接收并记录 csp-report,并在 CSP 中加入 report-uri、report-to。 八、测试与文档。生成 tests/csp.test.ts 校验必需指令及生产环境不含 unsafe-inline/unsafe-eval,并输出 docs/csp-configuration.md 与校验清单。
使用方式:按步骤执行资源分析、策略确定、指令生成、nonce 与 middleware 实现、环境处理、违规上报、文档与测试。产出结构为 lib/csp/nonce.ts、lib/csp/config.ts、middleware.ts、app/api/csp-report/route.ts、docs/csp-configuration.md、tests/csp.test.ts。示例命令与代码(如 Buffer.from(crypto.randomUUID()).toString('base64'))需原样使用。
适用场景:需要为 Next.js(尤其 App Router)站点加固 CSP、引入外部 CDN/API/字体/分析服务并需要合规放行的项目。
限制:资料未提供安装命令、版本要求、收费信息、平台差异及实际防护效果说明;无法确定之处暂未提供,使用前应自行测试与验证。