## 背景 全仓扫描确认:`next.config.mjs`、`proxy.ts`、`vercel.json` 均未配置任何安全响应头。当前生产站点没有 CSP、HSTS、`X-Frame-Options`、`Referrer-Policy`、`Permissions-Policy`。 风险:站点可被任意 iframe 嵌套(clickjacking);XSS 一旦发生无 CSP 兜底;评论区(Giscus)、AI 助手(BYO key 存 localStorage)等交互面放大影响。 ## 方案 `next.config.mjs` 加 `headers()`: 1. 第一批(无破坏风险,直接上):`X-Frame-Options: SAMEORIGIN`、`X-Content-Type-Options: nosniff`、`Referrer-Policy: strict-origin-when-cross-origin`、`Permissions-Policy`(关 camera/mic/geolocation)、HSTS。 2. 第二批(CSP,需先盘点):先以 `Content-Security-Policy-Report-Only` 上线观察一周(站内脚本源:GA / Umami / Giscus / Sentry / R2 图源),无误报后切强制。**不要一步到位上强制 CSP**,Giscus iframe 和内联 theme script 很容易被误杀。 ## 验收 - securityheaders.com 评级 ≥ A- - Giscus 评论、AI 助手、Umami/GA 上报、Sentry 全部正常 - `pnpm build` 前后路由表 diff 无变化(headers 不影响 SSG)
Activity