HTTP Strict Transport Security
本文按署名·非商业用途·保持一致授权作者:
,发表于2012年01月07日02时38分
HTTP Strict Transport Security,简称HSTS
它的作用是,对某些站点,当用户在浏览器输入不带协议的网址的时候,自动识别协议为https,而不是http。
例如用户输入paypal.com,浏览器会自动访问https://paypal.com,而不是http://paypal.com。当然,即使你的浏览器不支持HSTS,paypal也会自动跳转到https。
那么如何让自己的站点支持HSTS呢?只要在自己的站点的HTTPS响应的HTTP头里,加上下面这行即可
Strict-Transport-Security: max-age=16070400; includeSubDomains
当浏览器看到这个HTTP头,则会把当前站点加入HSTS列表。max-age和includeSubDomains的作用你们懂的。
根据Chrome的说明,当前支持HSTS的有Chrome和Firefox(版本>=4),我并没有去测试。
另外,Chrome自带一个默认的HSTS列表,paypal.com、lastpass.com、market.android.com等网站都列在里面。当前(Chrome16)这个列表是硬编码在Chrome的源代码(http://src.chromium.org/viewvc/chrome/trunk/src/net/base/transport_security_state.cc?view=log)里的。将来可能会把这个列表类似safe-browsing那样让不同的浏览器共享。
如果你想把自己的站点添加进Chrome的这个列表里,可以电邮
其实,大部分对安全有要求的站点,都会在服务器端自动识别协议,强制跳转到https。对这些站点来说,HSTS的作用只是让你少了一次HTTP请求而已。而在某些情况下,由于Set-Cookie、浏览器版本以及安全设置的因素,导致这个HTTP会发送HTTPS下所设置的cookie,存在安全隐患。除此之外,HSTS似乎没什么作用了。
另外我看了一下,alipay是没有发送Strict-Transport-Security头的。而paypal和lastpass都发送了这个头。

2012-01-14 14:52:19
之前一直用你的豆瓣音乐人链接显示,豆瓣今天更新了那个播放器了,那个工具就用不了了。。。有时间可以更新一下吗,谢谢!
2012-01-15 00:20:40
豆瓣音乐人那个修正了
2012-01-20 06:40:14
太好用了,谢谢!!!