ガイド
セキュリティヘッダー不備の修正方法 (CSP, HSTS)
セキュリティヘッダーが欠落しているWebサイトは、クロスサイトスクリプティング (XSS)、クリックジャッキング、プロトコルダウングレード攻撃、セッション情報の漏洩などの重大な脅威に晒されます。
1年以上の有効期限とpreloadを指定したStrict-Transport-Securityを導入し、厳格なCSPを策定、X-Content-Type-Options: nosniffとframe-ancestors 'none'を設定します。
欠落しているレスポンスヘッダーの診断
Webサーバーの設定変更を行う前に、curl -IL コマンドや自動診断ツールを使用して現在のヘッダー状態を確認します。オリジンサーバー(Nginx、Apache)、リバースプロキシ、CDNエッジのどの層でTLSが終端されヘッダーが付与されているかを特定し、途中のゲートウェイでヘッダーが削除されていないかを検証します。
Strict-Transport-Security (HSTS) の安全な設定
HSTSはブラウザに対してHTTPS接続のみを強制し、中間者攻撃や暗号化ダウングレードを未然に防ぎます。検証段階では max-age=86400(1日)で動作を確認し、全サブドメインとリソースのHTTPS化完了後に本番用の max-age=31536000; includeSubDomains; preload を適用します。本番環境で max-age=0 を設定してはなりません。
堅牢な Content Security Policy (CSP) の構築
CSPはブラウザ上で実行可能なスクリプトやリソースの取得元を厳密に制限します。最初は Content-Security-Policy-Report-Only ヘッダーと report-to ディレクティブを用いて運用への影響を監視します。default-src 'self' を基準とし、'unsafe-inline' の代わりにnonceやハッシュを採用し、object-src 'none' および frame-ancestors 'none' を指定します。
クリックジャッキング・MIMEスニッフィング・リファラー漏洩防止
CSP内の frame-ancestors 'none' とレガシーブラウザ向け X-Frame-Options: DENY により、悪意あるiframeへの不正な埋め込みを完全に遮断します。X-Content-Type-Options: nosniff でブラウザによる危険なファイル解釈を防ぎ、Referrer-Policy: strict-origin-when-cross-origin で外部遷移時のURLパラメータ漏洩を抑止します。
Webサーバーでの実装手順と動作検証
NginxではHTTPSサーバーブロック内に always パラメータを付けた add_header ディレクティブを記述します(例: add_header X-Content-Type-Options "nosniff" always;)。これにより4xxや5xxのエラー画面でもヘッダーが確実に維持されます。Apacheでは mod_headers の Header always set を用い、nginx -t で構文を確認した後に再読み込みを行います。
セキュリティヘッダー: HTTPS、CSP、クリックジャッキング対策、MIME、Referrer、ブラウザ分離。
無料診断を開始 →