HTTP Strict Transport Security (通常简称为HSTS) 是一个安全功能,它告诉浏览器只能通过HTTPS访问当前资源,禁止HTTP方式,因为HTTPS协议存在加密层,本身更安全。
一个网站接受一个HTTP的请求,然后跳转到HTTPS,用户可能在开始跳转前,通过没有加密的方式和服务器对话,比如,用户输入http://xxxxxx.com或者直接xxxxxx.com。这样存在中间人攻击潜在威胁,跳转过程可能被恶意网站利用来直接接触用户信息,而不是原来的加密信息。
网站通过HTTP Strict Transport Security通知浏览器,这个网站禁止使用HTTP方式加载,浏览器应该自动把所有尝试使用HTTP的请求自动替换为HTTPS请求。
案例解释:
你连接到一个免费WiFi接入点,然后开始浏览网站,访问你的网上银行,查看你的支出,并且支付一些订单。很不幸,你接入的WiFi实际上是黑客的笔记本热点,他们拦截了你最初的HTTP请求,然后跳转到一个你银行网站一模一样的钓鱼网站。现在,你的隐私数据暴露给黑客了。
Strict Transport Security解决了这个问题;只要你通过HTTPS请求访问银行网站,并且银行网站配置好Strict Transport Security,你的浏览器知道自动使用HTTPS请求,这可以阻止黑客的中间人攻击的把戏。
HSTS响应头示例:
Strict-Transport-Security: max-age=expireTime [; includeSubDomains] [; preload]
(1)expireTime,过期时间,单位是秒,用来告诉浏览器在指定时间内,这个网站必须通过HTTPS协议来访问。也就是对于这个网站的HTTP地址,浏览器需要先在本地替换为HTTPS之后再发送请求。
(2)includeSubDomains,可选参数,如果指定这个参数,表明这个网站所有子域名也必须通过HTTPS协议来访问。
(3)preload,可选参数,一个浏览器内置的使用HTTPS的域名列表。
Strict-Transport-Security 头信息当通过HTTP请求传递,会被浏览器忽略,这是因为攻击者可能拦截或者篡改HTTP连接头。当你的网站通过HTTPS连接并且没有证书错误,浏览器知道你的网站能够支持HTTPS,就会接受Strict-Transport-Security头信息。
您已成功复制微信号
leishi010
打开微信添加好友?
确定