セキュリティヘッダーとは
Webサイトにアクセスすると、サーバーはHTMLと一緒にHTTPヘッダーと呼ばれる情報をブラウザに送ります。セキュリティヘッダーは、その中でもブラウザに「このサイトをどう守るか」を指示する特別なヘッダーです。
適切なセキュリティヘッダーを設定することで、ブラウザ側で多くの攻撃を自動的にブロックできます。サイトのコード自体を変更せずに、サーバー設定だけで防御力を高められる点が大きなメリットです。
設定すべき5つのヘッダー
1. Content-Security-Policy(CSP)
CSPは、Webページ上で実行できるスクリプトや読み込めるリソースの出所を制限するヘッダーです。XSS攻撃の最も効果的な防御策の一つです。
CSPの設定はやや複雑ですが、まずは report-only モードで導入し、問題がないことを確認してから本番適用するのがベストプラクティスです。
2. X-Content-Type-Options
ブラウザによるMIMEタイプの自動判別(スニッフィング)を防ぎます。「nosniff」を設定するだけで、意図しないスクリプト実行を防げます。
3. X-Frame-Options
自分のサイトが他サイトの`iframe`に埋め込まれることを防ぎます。クリックジャッキング攻撃への有効な対策です。
4. Strict-Transport-Security(HSTS)
一度HTTPSでアクセスしたブラウザに対して、以降は常にHTTPSで接続するよう指示します。HTTP→HTTPSのリダイレクト中に発生する中間者攻撃を防ぎます。
5. Referrer-Policy
ページ遷移時に送信されるリファラー情報の範囲を制御します。ユーザーのプライバシー保護と、URLに含まれる機密情報の漏洩防止に役立ちます。
設定状況を確認するには
自分のサイトのセキュリティヘッダーが正しく設定されているかを確認するのは簡単です。
- ブラウザの開発者ツール(F12)を開く
- Networkタブで任意のリクエストを選択
- Response Headersセクションを確認
ただし、すべてのヘッダーを一つずつ確認するのは手間がかかります。ウェブ検診のサイト診断なら、主要なセキュリティヘッダーの設定状況を一覧で確認できます。
セキュリティヘッダーを誤って設定すると、サイトの正常な動作が妨げられる場合があります。変更前には必ずテスト環境で検証してください。
まとめ
セキュリティヘッダーは、コストゼロで導入できる最も効果的な防御策の一つです。すべてを一度に設定する必要はありません。まずは `X-Content-Type-Options: nosniff` のような簡単なヘッダーから始めて、段階的に強化していきましょう。