Open4

開発でよく使うHTTP Headerをまとめておく

MEGUMUMEGUMU

よく使うリクエストヘッダーはここにまとめる

MEGUMUMEGUMU

よく使うレスポンスヘッダーはここにまとめる

MEGUMUMEGUMU

セキュア系、CORS系のヘッダーはここにまとめる

Strict-Transport-Security (HSTS)

  • 内容
    • ブラウザに対して、指定された期間中はHTTPSのみで接続するよう指示する
  • 注意点
    • 初回接続時はHSTSの設定をブラウザ側は保持していないのでHTTPの場合、HTTPでの通信が発生する。1度レスポンスでHSTSの設定が返るとブラウザはmax-age間、HTTPSでの接続を試みるようになる。つまり、301リダイレクトよりはHTTPでの接続回数をぐんと減らせるが0ではないことに注意が必要。0にするにはpreloadの設定をしておこう
  • 設定
    • max-age
      • 秒単位で、そのサイトに HTTPS だけで接続することをブラウザーが記憶する時間
    • includeSubDomains
      • 省略可能で、この引数が指定されると、この規則がサイトのすべてのサブドメインにも適用される
    • preload
      • 初回アクセス時点でHTTPSで接続するように指示するようにする。GoogleのHSTS Preloadに登録しておく必要あり
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload

Content-Security-Policy (CSP)

  • 内容
    • クロスサイトスクリプティング(XSS)やデータインジェクション攻撃を防ぐために、ブラウザが読み込むコンテンツに制限をかける
  • 設定
    • default-src
      • defaultは「self」で自身のオリジンからのコンテンツのみを許可する
    • その他色々あるので制限をかけたい対象毎に調べて適応する
      • script-src
      • object-src
      • style-src
      • img-src
      • form-action
      • etc...

X-Content-Type-Options

  • 内容
    • ブラウザに対して宣言されたMIMEタイプ以外でのコンテンツの解釈を禁止する指示する
    • ブラウザがMIMEタイプのスニッフィング(推測)をし、想定していないファイルの読み込みや実行を行う場合がある。MIMEタイプに指定したもののみを厳密に利用するように指示することで推測を行わせないのが目的
  • 設定
    • nosniff
      • ブラウザは Content-Type ヘッダーに指定されたMIMEタイプに厳密に従う
X-Content-Type-Options: nosniff

X-Frame-Options

  • 内容
    • ブラウザーがページを <frame>、<iframe>、<embed>、<object> の中に表示することを許可するかどうかを設定できる
  • 設定
    • DENY
      • ページをフレーム内に表示することは、それを試みているサイトが何であろうとできません。
    • SAMEORIGIN
      • ページは、ページ自体と同じオリジンのフレーム内でのみ表示される

■ X-XSS-Protection

■ Referrer-Policy

■ Permissions-Policy

■ Expect-CT