概要
next.config.js でセキュリティヘッダーを設定していますが、CSP(Content-Security-Policy)が未設定です。口座情報・売上データを扱うアプリのため XSS 対策として導入します。
現状設定されているヘッダー
HSTS / X-Frame-Options / X-Content-Type-Options / Referrer-Policy / Permissions-Policy / X-DNS-Prefetch-Control / X-XSS-Protection
対応内容
対象ファイル
next.config.js
middleware.ts(nonce 生成が必要な場合)
docs/design/security.md
受け入れ条件
概要
next.config.jsでセキュリティヘッダーを設定していますが、CSP(Content-Security-Policy)が未設定です。口座情報・売上データを扱うアプリのため XSS 対策として導入します。現状設定されているヘッダー
HSTS/X-Frame-Options/X-Content-Type-Options/Referrer-Policy/Permissions-Policy/X-DNS-Prefetch-Control/X-XSS-Protection対応内容
Content-Security-Policyを追加(nonce ベース推奨)next/font/google(Inter)、Recharts、@react-pdf/rendererの要件を満たすことContent-Security-Policy-Report-Onlyで運用して違反を洗い出してから強制に切り替えるX-XSS-Protectionを削除(モダンブラウザでは非推奨・むしろ有害とされる。CSP で置き換える)X-Frame-Options: SAMEORIGINを CSP のframe-ancestorsに統合対象ファイル
next.config.jsmiddleware.ts(nonce 生成が必要な場合)docs/design/security.md受け入れ条件
X-XSS-Protectionが削除されているdocs/design/security.mdにヘッダー方針が記載されている