HTTP Strict Transport Security ヘッダー メモ


HTTP Strict Transport Security とは

  • ウェブサイトがブラウザにHTTP の代わりに HTTPS を用いて通信を行うよう指示するためのレスポンスヘッダー

HSTSを設定する理由

  • 中間者攻撃の防止
    • 暗号化されていないHTTPによるアクセスを誘い、暗号化しない状態で通信させることで、Cookieや、フォーム送信した情報を傍受・改竄される危険がある。

  • HSTSを設定することで...
    • 一度正規サイトにアクセスした場合、同一ドメインにアクセスする際にはHTTPでのアクセスを試みることはなく、HTTPSでアクセスを行うようになる。

ディレクティブ

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
  • max-age※必須
    • 対象サイトに HTTPS だけで接続することをブラウザーが記憶する有効期間
    • 秒数指定。31536000=1年間
    • 有効期限が経過すると、自動的にHTTPS を使用するのではなく、通常通りに HTTPでサイトアクセスを試みる。
    • Strict-Transport-Security ヘッダーがブラウザへ送信されるたびに、そのウェブサイトに対する有効期限が更新される。
    • HSTSを無効にしたい場合は0を指定する。
  • includeSubDomains ※任意
    • すべてのサブドメインに適用される。
  • preload ※任意
    • pre-loaded list(Googleが管理)に事前追加(登録申請必要)することで、初回リクエストからHSTSを動作させる。
    • ペイレベルドメインのみ設定可能※サブドメイン単位では登録不可。
    • 申請要件

参考情報