セキュリティヘッダー
HTTP レスポンスヘッダーでブラウザのセキュリティ機能を制御し、XSS やクリックジャッキングを防ぐ仕組み
セキュリティヘッダーとは
セキュリティヘッダーは、HTTP レスポンスに付与するヘッダーで、ブラウザのセキュリティ機能を有効化し、XSS、クリックジャッキング、MIME スニッフィングなどの攻撃を防ぐ。
主要なヘッダー
主要なヘッダーを以下にまとめる。
| ヘッダー | 防ぐ攻撃 | 推奨値 |
|---|---|---|
Content-Security-Policy | XSS、データインジェクション | default-src 'self' |
Strict-Transport-Security | ダウングレード攻撃 | max-age=31536000; includeSubDomains |
X-Content-Type-Options | MIME スニッフィング | nosniff |
X-Frame-Options | クリックジャッキング | DENY |
Referrer-Policy | リファラー情報の漏洩 | strict-origin-when-cross-origin |
Permissions-Policy | ブラウザ機能の制限 | camera=(), microphone=() |
Content-Security-Policy (CSP)
ページが読み込めるリソースの出所を制限する。XSS 攻撃で注入されたスクリプトの実行を防ぐ。
Content-Security-Policy: default-src 'self'; script-src 'self' https://cdn.example.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:;
| ディレクティブ | 制御対象 |
|---|---|
default-src | 全リソースのデフォルト |
script-src | JavaScript |
style-src | CSS |
img-src | 画像 |
connect-src | fetch, XHR, WebSocket |
frame-ancestors | iframe での埋め込み元 |
Strict-Transport-Security (HSTS)
ブラウザに「このサイトには常に HTTPS でアクセスせよ」と指示する。HTTP → HTTPS のリダイレクト前に攻撃される中間者攻撃を防ぐ。
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
CloudFront での設定
CloudFront のレスポンスヘッダーポリシーでセキュリティヘッダーを一括設定できる。
確認方法
確認方法の例を示す。
# ヘッダーの確認
curl -I https://example.com
# securityheaders.com で A+ を目指す
よくある失敗
- CSP が厳しすぎてインラインスクリプトが動かない →
nonceやhashで許可 - HSTS を設定後に HTTP に戻せない →
max-ageを短くしてテスト X-Frame-Options: DENYで自サイトの iframe 埋め込みも拒否 →frame-ancestors 'self'を使う
実践的な知識は関連書籍でも得られる。
この記事は役に立ちましたか?
関連用語
CSP レポート
Content Security Policy 違反をブラウザがサーバーに自動報告し、XSS やデータ漏洩を検知する仕組み
CORS
ブラウザの同一オリジンポリシーを緩和し、異なるオリジン間のリソース共有を許可する仕組み
XSS
Web サイトに悪意のあるスクリプトを注入し、ユーザーの情報を盗む攻撃
CSP
Content Security Policy の略で、Web ページで実行可能なリソースの出所を制限するセキュリティ機構
CSRF
ユーザーが認証済みの Web サイトに対して、攻撃者が意図しないリクエストを送信させる攻撃手法
TCP/IP
インターネット通信の基盤となるプロトコル群で、データの分割・送信・再組立を信頼性高く行う
関連する記事
セキュリティ本ガイド - Web 開発者が読むべき技術書の選び方
Web セキュリティの基礎から実践まで学べる技術書の選び方マトリクスと、読了後にやるべき 3 つのアクションを紹介します。
バグを生むのは知識不足ではなく想像力不足である
バグの多くは、コードを書いた時点で「こういうケースもありうる」と想像できなかったことが原因です。想像力を鍛える読書法と、エッジケースへの感度を高める方法を解説します。
技術書を Kindle で読むコツ - 電子書籍ならではの活用術
技術書を Kindle で効率的に読むための具体的なテクニックを紹介します。ハイライト、検索、フォントサイズの調整など、紙にはない電子書籍の強みを活かす方法。