如何使用HSTS(HTTPS严格传输安全模式)

今天更新了我的博客主程序,我打开了HSTS。

HSTS是一种安全功能,在HSTS模式下,一旦浏览器与服务器建立了HTTPS连接,浏览器就不再承认HTTP连接有效。

这是为了防止HTTPS中间人攻击的一种方式——降级攻击(即作为中间人,替换所有页面上的https为http)而产生的一种措施。

在访问不安全的HTTPS连接的时候,浏览器会给出警告,如果使用了HSTS,那么用户将不能忽略警告。

HSTS的主要部分由浏览器实现,现在主流浏览器已经全面支持HSTS。服务器要做的就是通知浏览器自己已经准备好了全站HTTPS,可以完全抛弃HTTP了。

服务器设置HSTS非常简单,只需要发送以下响应头即可:

Strict-Transport-Security: max-age=63072000; includeSubdomains; preload

参数看名字就可以知道意思了。其中max-age(单位是秒)是HSTS至少保持的时间。即只要和该服务器建立过HTTPS连接,在该时间没过之前,即使你使用HTTP连接也是无效的。