RPT-002レベル 2 · 中級Webサイトのセキュリティ読了目安 6 分

Web サイトのセキュリティヘッダー:今日から直せる 9 項目チェックリスト

ブラウザは、どのウェブサイトもページ本体より先に送ってくる指示に従います。セキュリティヘッダーはその指示ですが、ほとんどのサイトは 1 つも送っていません。

Iron Cyber Tech チーム

01ヘッダーが重要な理由

セキュリティヘッダーは、訪問者のブラウザに危険な動作を拒否させます。たとえば、他人のフレーム内でページを読み込む、ファイル形式を推測する、完全なアドレスをほかのサイトへ送る、出所不明のスクリプトを実行する、といった動作です。費用はかからず、ページも重くならず、攻撃の種類をまとめて防げます。

021. 有効な証明書による HTTPS

すべてはここから始まります。サイト全体を、有効で期限切れでない証明書を使った HTTPS で配信してください。Let's Encrypt や CDN の無料証明書で十分です。

032. HTTP から HTTPS へリダイレクト

ふつうの http:// アドレスが入力されたら、サーバーは https:// 版への恒久的なリダイレクトで応答する必要があります。

043. HSTS:HTTPS を使うことを覚えさせる

Strict-Transport-Security ヘッダーは、訪問者が http と入力しても、長期間そのドメインで HTTPS を使うようブラウザに伝えます。

レスポンスヘッダー
Strict-Transport-Security: max-age=31536000; includeSubDomains

054. コンテンツセキュリティポリシー(CSP)

CSP は、スクリプト、スタイル、画像の読み込み元を一覧にします。クロスサイトスクリプティング(XSS)に対する最も強力な防御であり、正しく設定するのが最も難しいヘッダーでもあります。

レスポンスヘッダー(出発点)
Content-Security-Policy: default-src 'self'; script-src 'self'; object-src 'none'; base-uri 'self'; frame-ancestors 'none'

065. クリックジャッキング対策

他のサイトがあなたのページを隠しフレームに埋め込むのを防ぎます。現在の方法は CSP の frame-ancestors で、古いブラウザには X-Frame-Options が対応します。

レスポンスヘッダー
X-Frame-Options: DENY

076. X-Content-Type-Options

宣言されたファイル形式を信頼し、推測しないようブラウザに伝えます。1 行で、デメリットはありません。

レスポンスヘッダー
X-Content-Type-Options: nosniff

087. Referrer-Policy

訪問者が他のサイトへのリンクをクリックしたときに、ページのアドレスをどこまで共有するかを制御します。

レスポンスヘッダー
Referrer-Policy: strict-origin-when-cross-origin

098. 技術情報を漏らさない

Server: nginx/1.18.0 や X-Powered-By: PHP/7.4 のようなヘッダーは、攻撃者にどのバージョンを調べればよいかを正確に教えてしまいます。プラットフォームが許す範囲で削除または非表示にしてください。

109. 安全な Cookie

ログインセッションを保持する Cookie には Secure(HTTPS のみ)、HttpOnly(スクリプトから読めない)、SameSite(サイト間の送信を制限)を付けます。

レスポンスヘッダー
Set-Cookie: session=...; Secure; HttpOnly; SameSite=Lax

11設定する場所

Cloudflare Workers の静的アセットでは、サイトのファイルの隣にシンプルな _headers ファイルを置きます。

_headers
/*
  Strict-Transport-Security: max-age=31536000; includeSubDomains
  X-Content-Type-Options: nosniff
  X-Frame-Options: DENY
  Referrer-Policy: strict-origin-when-cross-origin

他のホスティングには、それぞれ設定場所があります。nginx は add_header、Apache は Header set、またはホスティングのパネルです。

12あなたのサイトをテストする

アドレスを入力し、確認する権限があることを確認してください。一般的なブラウザと同じ通常のリクエストを 1 回送るだけで、何も保存されません。

ライブモジュール

ウェブサイトセキュリティ診断

HTTPSと、すべてのサイトが送るべきセキュリティヘッダー。

受動的診断:一般的なブラウザと同じように、サイトへ通常のリクエストを1回だけ送ります。アドレスも結果も保存しません。

ポイント

  • まず HTTPS、リダイレクト、HSTS から始めましょう。安全で手早くできます。
  • 次に nosniff、リファラーポリシー、フレーム保護を追加します。
  • CSP は少しずつ導入します。まず Report-Only、それから適用です。

御社のサイトも見てほしいですか?メッセージをお送りください。喜んでお手伝いします。

お問い合わせ

ほかのシグナル

← すべてのシグナル