ガイド
HTTPセキュリティヘッダーの設定と診断手順
ヘッダーはサイトの挙動と合致したときにクライアント側のリスクを軽減しますが、それだけでアプリケーション全体の安全を証明するものではありません。
HTTPSを土台とし、CSP、フレーム保護、nosniff、Referrer-Policyを設定します。不足や脆弱なヘッダーは侵入の証拠ではなく、点検項目として捉えてください。
HTTPSとHSTSでトランスポート層を防御する
すべての公開トラフィックを有意な証明書を用いたHTTPSで配信します。全サブドメインでの確実なHTTPS稼働を確認した上で、正の期間を指定したStrict-Transport-Security(例: max-age=31536000)を導入します。max-age=0はHSTSポリシーを無効化 (RFC 6797) するため厳禁です。
厳格な Content-Security-Policy を構築する
HTTPレスポンスヘッダーでCSPを設定し、リソースの実行元を制限します。default-src、script-src、object-src 'none'、frame-ancestorsを適切に指定し、'unsafe-inline' やワイルドカード (*) を排除してNonceやSHA-256ハッシュを活用し、XSS攻撃を防御します。
クリックジャッキングとMIMEスニッフィングを遮断する
CSPのframe-ancestors(および互換性のための X-Frame-Options: DENY)を設定し、悪意ある第三者が透明なiframe内にサイトを埋め込むことを防ぎます。X-Content-Type-Options: nosniff を指定して、ブラウザによる実行可能ファイルの推測を防止します。
クロスオリジン分離とプライバシー保護を実装する
プロセスのクロスオリジン分離には、Cross-Origin-Opener-Policy (COOP: same-origin) と Cross-Origin-Embedder-Policy (COEP: require-corp または credentialless) の双方が必要です。Referrer-Policy: strict-origin-when-cross-origin で外部遷移時の漏洩を防ぎ、Permissions-Policy で不要なAPIを無効化します。
ヘッダー診断の適用境界を正確に理解する
レスポンスヘッダーの検証は多層防御の重要な一環ですが、ペネトレーションテストではありません。サーバー側のSQLインジェクション、認証不備、依存関係の脆弱性、ビジネスロジックの欠陥は検出できません。包括的な安全性には動的・静的なセキュリティ検証が必要です。