首页  > 计算机 >

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都发送了这个头。


3个评论

  1. mushroom:

    之前一直用你的豆瓣音乐人链接显示,豆瓣今天更新了那个播放器了,那个工具就用不了了。。。有时间可以更新一下吗,谢谢!

  2. Chen Ze:

    豆瓣音乐人那个修正了

  3. mushroom:

    太好用了,谢谢!!!

发表评论

  本站文章若无注明,则以署名·非商业用途·保持一致授权
  桂ICP备05004302号 感谢WordPress提供本程序 本模板下载