セキュリティヘッダー診断
サイトの「HTTPヘッダーによる守り」を点検します。足りない設定は、そのまま貼れる .htaccess の記述を提示します。
ℹ️ この診断は当サイトのサーバーが対象URLへアクセスして結果を取得します。入力したURL以外の情報は送信されません。
当サイトのサーバーが対象URLへ1回アクセスし、レスポンスヘッダーを取得します(リダイレクトは5回まで追跡)。結果は5分間キャッシュします。
使い方
- 診断したいページの URL を入力して「診断する」を押します。トップページだけでなく、ログイン画面やフォームのページでも確認できます。
- 総合の評点と、ヘッダーごとの判定(✔ 設定あり、△ 改善の余地、✖ 未設定)が表示されます。
- 不足があれば「.htaccess 設定例」をコピーして、サーバーの設定に追加します。追加後にもう一度診断して反映を確かめてください。
各ヘッダーの役割
| ヘッダー | 防ぐもの | 推奨値 |
|---|---|---|
| Strict-Transport-Security | http での接続、証明書警告の回避 | max-age=31536000; includeSubDomains |
| Content-Security-Policy | 不正なスクリプトの実行(XSS)の被害 | サイトごとに設計。まず Report-Only で試す |
| X-Content-Type-Options | ファイル種別の推測による実行 | nosniff |
| X-Frame-Options | 他サイトの iframe への埋め込み(クリックジャッキング) | SAMEORIGIN(CSP の frame-ancestors でも可) |
| Referrer-Policy | リンク先への URL 情報の漏れ | strict-origin-when-cross-origin |
| Permissions-Policy | カメラ・マイク・位置情報などの不要な利用 | 使わない機能を () で無効化 |
| Cookie の Secure / HttpOnly / SameSite | 通信経路や JavaScript からの Cookie 窃取 | 3つとも付ける |
評点の考え方
効果が大きく副作用の少ないものほど配点を大きくしています(CSP 20、HSTS 15、X-Content-Type-Options と X-Frame-Options と Cookie 属性が各10)。旧式の X-XSS-Protection は配点ゼロで、設定されている場合はむしろ削除を勧めます。評点は設定の有無を見るもので、サイトの脆弱性の有無を保証するものではありません。
設定するときの注意
Header always setは mod_headers が有効なサーバーでのみ動きます。設定しても診断結果が変わらない場合は、サーバー会社の仕様を確認してください。- CSP は外部スクリプト(解析タグ、広告、埋め込み動画)を遮断します。本番適用の前に
Content-Security-Policy-Report-Onlyで違反の有無を確認してください。 - HSTS を付けると、期間中は http で開けなくなります。全ページが https で表示できることを確認してから設定してください。
よくある質問
点数が低いと危険なサイトですか?
ヘッダーは「多層防御」の一部で、点数が低いことが直ちに侵入を意味するわけではありません。ただし、X-Content-Type-Options や X-Frame-Options のように副作用がほとんどなく効果のある設定が無いのは、改善の余地が大きい状態です。
CSP を付けたら表示が崩れました。
Content-Security-Policy は許可していない外部スクリプトや画像を遮断します。まず Content-Security-Policy-Report-Only で違反を記録し、問題がないことを確認してから本番のヘッダーに切り替えてください。CSP生成ツールで雛形を作れます。
レンタルサーバーでも設定できますか?
Apache 系のレンタルサーバー(エックスサーバー、さくら、ロリポップなど)は .htaccess の Header always set で設定できます。mod_headers が無効な場合は設定が反映されません。WordPress の場合はプラグインでも付与できます。
Server や X-Powered-By が表示されるのは問題ですか?
ソフトウェアのバージョンが分かると攻撃の手がかりになるため、表示しないのが望ましい設定です。ただし隠しても攻撃を防ぐわけではなく、更新を怠らないことのほうが重要です。