はじめに
HTTPのStrict-Transport-Security
について勉強してみました。
Strict-Transport-Security
Strict-Transport-Security
はHTTPレスポンスヘッダーの一部です。
Strict-Transport-Security
が設定されている場合、httpでアクセスされた際にブラウザがhttps通信へ変更してWebサーバへ問い合わせを行います。
設定は以下のようにmax-age(秒数)などキャッシュ期間を指定します。
Strict-Transport-Security: max-age=999999;
リダイレクトとの違い
似たような処理として、301などのリダイレクトがあります。
httpの通信が来た際にリダイレクトを行ってhttpsのURLへアクセスするという手法も実例としてありますが、この2つは何が違うのでしょうか。
それはリダイレクトの場合、毎回1度はhttpの通信が発生してしまうのに対してStrict-Transport-Security
はhttp通信が発生するのが最初の1度目のみということです。
※preloaded HTTP Strict-Transport-Security(preloaded HSTS)という手法を用いると最初の1度目すらもhttp通信が発生しないようですが、一旦今回は省略します。
毎回httpの通信が走ってしまうリダイレクトの場合はその分盗聴されるリスクもあるため、セキュリティ的な観点から見るとStrict-Transport-Security
を用いる方が良さそうです。
おわりに
以上、Strict-Transport-Security
についてでした。