即使用户被 301 跳到 HTTPS,首次那次明文请求仍可能被劫持。HSTS 让浏览器记住:以后只走 HTTPS。
防护配置
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
要点速览
- max-age 设为一年,浏览器在有效期内不再发起 http 明文请求。
- includeSubDomains 一并保护子域,但要确保所有子域都已支持 HTTPS 再开。
- always 参数保证错误响应也带这个头,防护不留死角。
HSTS 是 301 跳转的升级版:从「每次劝」变成「浏览器自己记」。