Strict-Transport-Security Inspect
セキュリティヘッダー/ポリシーをブラウザ内で診断します。入力はサーバーへ送信しません。段階導入前の一次確認に使えます。
状態
ブラウザ内で処理します。入力はサーバーへ送信しません。まずはここで一次切り分けしてください。
使い方
Strict-Transport-Security を貼り付けて「解析」。ディレクティブを一覧表示します。
注意(このツール)
- Strict-Transport-Security: のヘッダー行でも解析できます。
このページについて
何をするツール?
Strict-Transport-Security(HSTS)を解析し、max-age などのディレクティブを一覧表示します。
HTTPS強制の設定確認や、preload要件の確認に向きます。
HTTP Header Parser と併用すると、実際のレスポンスヘッダー確認がスムーズです。
HSTSの基本
- HSTSは「以後はHTTPSでのみアクセスする」ことをブラウザに指示します。
- max-age は有効期間(秒)です。
- includeSubDomains を付けるとサブドメインにも適用されます。
使いどころ
- HTTPSの強制が意図通り効いているか確認したい
- サブドメインも含めた強制にしたい(includeSubDomains)
- HSTS Preload 申請前の要件確認
よく使うディレクティブ
- max-age=31536000(1年)など
- includeSubDomains
- preload(preload一覧への申請用)
構文(読み方)
HSTSは「Strict-Transport-Security: max-age=...; includeSubDomains; preload」のようにセミコロン区切りで指定します。
- max-age は必須で、秒数(整数)を指定します。
- includeSubDomains/preload はフラグです(値は持ちません)。
セキュリティ観点(何が守られる?)
HSTSは、HTTPへのダウングレードや、初回アクセス後のSSLストリップ(HTTPへ誘導)を防ぐための仕組みです。
ただし「初回アクセス前」はHSTSがまだ学習されていないため、preload を使わない限り完全ではありません。
preload の考え方
preload はブラウザ内蔵のHSTSリストに載せるための申請用フラグです。載ると初回アクセス前からHTTPSが強制されます。
- 運用上は「ほぼ戻せない」前提で検討(全サブドメインHTTPS必須)
- 要件未達で入れると、古いサブドメイン/検証環境が壊れます
安全な導入ステップ(例)
- 1) まずmax-ageを短めで導入(例:1日)
- 2) 問題がなければ段階的に延長(1週→1月→1年)
- 3) 全サブドメインのHTTPSが確認できたら includeSubDomains を検討
- 4) preload は最後(申請要件を満たす場合のみ)
よくある落とし穴
- max-ageが短く、意図した強制期間になっていない
- includeSubDomains を付けて未対応のサブドメインが壊れる
- preload を付けたが要件(https/redirects)を満たさない
- 開発/検証用サブドメインがHTTPのまま残っている
関連ヘッダー(併用すると強い)
HSTSはHTTPSを前提にするため、他のセキュリティヘッダーと組み合わせると効果が高まります。
- CSP(Content-Security-Policy):XSSや読み込み元制御
- Referrer-Policy:参照元情報の漏えい抑制
- Permissions-Policy:強いブラウザ機能の利用制御
このツールでできること
- HSTSディレクティブの分解
- max-age値の確認
- includeSubDomains/preload の有無確認
切り分け手順(おすすめ)
- 対象ヘッダーを貼り付ける
- 不足・過剰なポリシーを確認する
- Report-Onlyや段階反映で検証する
注意(運用)
- 推奨値は環境依存です。機能要件と衝突しないか検証してから適用してください。
- 本番では段階導入とレポート監視を併用してください。
参照仕様
- RFC 6797(HTTP Strict Transport Security)
- MDN: Strict-Transport-Security
FAQ
HSTSを付けるとHTTPは完全に使えない?
対象ホストはブラウザがHTTPSに強制します。サブドメインも含める場合は includeSubDomains に注意が必要です。
preload は必ず付けるべき?
preloadは不可逆に近い運用になるため、全ドメインでHTTPSが確実に運用できる場合のみ推奨です。
max-age はどれくらいが多い?
本番運用では「数か月〜1年」相当をよく見ますが、最初は短く入れて段階的に延長するのが安全です。
参考リンク
次に見る(診断順)
site_map ルールに基づいて、次に確認すべきページを表示しています。
- X-Frame-Options Inspect — X-Frame-Options を解析してクリックジャッキング対策を確認
- Referrer-Policy Inspect — Referrer-Policy を解析して送信範囲を確認
- X-Content-Type-Options Inspect — X-Content-Type-Options を解析して nosniff を確認
- Permissions-Policy Inspect — Permissions-Policy を解析して機能制限を確認
- Security Headers Audit — 主要セキュリティヘッダーの有無を一括監査
- Security Headers Recommendation — 不足ヘッダーに対する推奨値を提案
- Security Headers Fix Plan — 優先度付きの修正ステップを作成
- CSP Nonce/Hash Helper — CSP用 nonce/hash を生成して照合
同テーマの導線
セキュリティヘッダー
不足ヘッダーの検出から修正計画まで一気に進める
- Security Headers Audit — 主要セキュリティヘッダーの有無を一括監査
- Security Headers Recommendation — 不足ヘッダーに対する推奨値を提案
- Security Headers Fix Plan — 優先度付きの修正ステップを作成
- CSP Nonce/Hash Helper — CSP用 nonce/hash を生成して照合
- CSP Builder — テンプレートからCSPを組み立て
- CSP Report Analyzer — CSPレポートJSONを解析して違反傾向を把握
- CSP Inspect — CSPディレクティブを分解して評価
- Permissions-Policy Inspect — Permissions-Policy を解析して機能制限を確認
- Referrer-Policy Inspect — Referrer-Policy を解析して送信範囲を確認
- X-Frame-Options Inspect — X-Frame-Options を解析してクリックジャッキング対策を確認
- X-Content-Type-Options Inspect — X-Content-Type-Options を解析して nosniff を確認
Example
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload