HTTPSにリダイレクトするだけじゃダメなの?
HTTPからHTTPSへのリダイレクトは大事だけど、最初の1回はHTTPでアクセスするよね。この最初のHTTP通信が中間者攻撃の隙になるんだ。HSTSを設定すると、2回目以降はブラウザが最初からHTTPSでアクセスするようになるから、HTTPの通信自体が発生しなくなるよ。
SSLストリッピング攻撃って何?
中間者がユーザーとサーバの間に入って、ユーザーにはHTTPで通信しつつ、サーバにはHTTPSで通信する攻撃だよ。ユーザーはHTTPで通信していることに気づかず、通信内容が盗聴されてしまうんだ。HSTSがあれば、ブラウザがHTTP通信を拒否するからこの攻撃を防げるよ。
preloadって何?
HSTSは最初のアクセスでヘッダを受け取る必要があるよね。preloadを設定してHSTS Preload Listに登録すると、ブラウザに最初からHTTPS必須のサイトとして組み込まれるんだ。初回アクセスからHTTPS強制になるから、最も安全な方法だよ。
HSTSの設定で注意することは?
max-ageの値を短くし過ぎないこと(最低でも1年=31536000秒が推奨)、HTTPSの証明書管理を確実にすること。HSTSを設定したのに証明書が切れると、ブラウザがHTTPSを強制するけど接続できないからサイトに全くアクセスできなくなるんだ。preloadの登録を解除するのにも時間がかかるから、慎重に設定しようね。