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; includeSubDomains054. コンテンツセキュリティポリシー(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: DENY076. X-Content-Type-Options
宣言されたファイル形式を信頼し、推測しないようブラウザに伝えます。1 行で、デメリットはありません。
X-Content-Type-Options: nosniff087. Referrer-Policy
訪問者が他のサイトへのリンクをクリックしたときに、ページのアドレスをどこまで共有するかを制御します。
Referrer-Policy: strict-origin-when-cross-origin098. 技術情報を漏らさない
Server: nginx/1.18.0 や X-Powered-By: PHP/7.4 のようなヘッダーは、攻撃者にどのバージョンを調べればよいかを正確に教えてしまいます。プラットフォームが許す範囲で削除または非表示にしてください。
109. 安全な Cookie
ログインセッションを保持する Cookie には Secure(HTTPS のみ)、HttpOnly(スクリプトから読めない)、SameSite(サイト間の送信を制限)を付けます。
Set-Cookie: session=...; Secure; HttpOnly; SameSite=Lax11設定する場所
Cloudflare Workers の静的アセットでは、サイトのファイルの隣にシンプルな _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、それから適用です。
御社のサイトも見てほしいですか?メッセージをお送りください。喜んでお手伝いします。
お問い合わせ