JAVA年度安全 第八周 HTTP严格传输安全协议

Whatis it and why should I care?

HTTP严格传输安全(HSTS)是一个新技术,强制浏览器使用SSL/TLS(HTTPS)协议来访问应用。当应用在HTTP的响应头中设置HSTS标识,如果浏览器支持HSTS标识,那么本次通讯完全是基于HTTPS的。下面是简单的流程:

1、 用户通过HTTP或者HTTPS协议访问WEB应用,大部分用户使用HTTP协议,因为通常会忘记(不知道)输入https://

2、 应用给出包含HSTS标识的响应,告诉浏览器90天内都使用HTTPS来访问。

3、 在这90天内,浏览器不会发送非HTTPS的请求

Whatshould I do about it?

不要犹豫了,设置这个标识吧,不需要考虑向下兼容的问题,这个标识只是用来加强安全特性的,用最小的变化给用户带来很大的安全提升。下面的示例是用Java编码来实现设置这个标识:

<span style="font-size:18px;">HttpServletResponse ...;
response.setHeader("Strict-Transport-Security", "max-age=7776000; includeSubdomains");
</span>

这个代码段告诉浏览器之后的90天只能使用HTTS访问这个域名下的地址。


max-age

必须存在max-age属性,用来设置HTTPS访问有效期的(单位秒)。可以设置为任何值,如果为0意味着浏览器移除当前的策略,不需要使用HTTPS。


includeSubdomains

可选属性includeSubdomains没有值,表示这个网站的子域名也需要使用HSTS策略


ExpirationReset

表示HSTS的有效期可以被浏览器用每次从响应头中的新数据重置。例如:如果初始值为90天,一个用户每次访问网站间隔时间不会超过90天,那么每次访问网站之后,HSTS的有效期都是重新为90天。需要注意的是如果修改了这个设置,所有的浏览器会更新为新的数据。如果当前数据为90天,而明天的数据为10天,那么浏览器明天访问之后会使用10来代替90。


Click-Through Insecurity

可选参数。HSTS标准建议浏览器在网络通道不安全(认证、域名)的时候不要发送任何数据到服务器端(标准https://tools.ietf.org/html/draft-ietf-websec-strict-transport-sec未要求)这个参数已经被当前的浏览器支持了,是很重要的安全选项。意味着之前弹出给用户的HTTPS连接错误(证书过期、非HTTPS的内容)的警告不会再出现了,而是直接显示错误。


Pre-loadedHSTS Lists

如果为了进一步确保站点只能通过HTTPS访问,可以将站点加入到HSTS网站名单中。加入名单之后,即使浏览器第一次访问这个站点就是通过HTTPS的方式!Paypal就是这样做的。

HSTS能够简单有效的强制用户使用HTTPS访问网站应用。如果你的网站完全支持HTTPS,实现HSTS可以为网站和访问网站的用户提供更安全的保证。


References
———–
http://hacks.mozilla.org/2010/08/firefox-4-http-strict-transport-security-force-https/
http://dev.chromium.org/sts
http://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security
https://tools.ietf.org/html/draft-ietf-websec-strict-transport-sec
http://michael-coates.blogspot.com/2011/07/enhancing-secure-communications-with.html
http://www.troyhunt.com/2011/11/owasp-top-10-for-net-developers-part-9.html



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值