首页 > 代码库 > JAVA年度安全 第九周 X-FRAME-OPTIONS

JAVA年度安全 第九周 X-FRAME-OPTIONS

What is it and why should I care?

X-Frame-Options(在草拟的标准中已经移除X-,只保留Frame-Options)是一个新技术用来指定网站页面是否允许嵌入IFrame页面。这样能够解决点击劫持(clickjacking)攻击。

此技术是基于每个页面的HTTP响应头特定参数实现的。支持(X-)Frame-Options头参数的浏览器根据标准会允许或禁用当前页面上的IFrame页面。

 

What shouldI do about it?

此方法同样也是一个低风险、同时能增加更多安全措施的方案。在某些情况下此方案会被限制不起作用,但是不会影响其他安全措施,这种方案只是一个附加的保护机制。

 

在页面上可以指定3中不同的IFrame页面嵌入规则。

方案1:DENY

此规则表示页面不能被嵌入页面,即使被嵌入的页面地址是同源的。如下是简单的代码片段:

HttpServletResponse response …;

response.addHeader(“X-Frame-OPTIONS”, “DENY”);

 

方案2:SAMEORIGIN

表示只允许嵌入同源的页面,代码如下:

HttpServletResponse response …;

response.addHeader(“X-Frame-OPTIONS”, “SAMEORIGIN”);

 

方案3:Allow-From

当前可以被嵌入指定域名的页面,例如:

HttpServletResponse response …;

Response.addHeader(“X-Frame-OPTIONS”, “Allow-Fromhttps://some.othersite.com”);

 

更多的帮助说明可以参考owasp的X-Frame-Options示例:J2EE filter https://www.owasp.org/index.php/ClickjackFilter_For_Java_EE#Source_Code

 

(X-)Frame-Options以极低的代价来保护你的用户,为网站添加一层保护措施来阻止点击劫持clickjacking。

 

Reference

———–

https://developer.mozilla.org/en/The_X-FRAME-OPTIONS_response_header

https://www.owasp.org/index.php/Clickjacking#Defending_with_response_headers

http://blogs.msdn.com/b/ieinternals/archive/2010/03/30/combating-clickjacking-with-x-frameoptions.

aspx

http://blog.mozilla.com/security/2010/09/08/x-frame-options/

http://lcamtuf.blogspot.com/2011/12/x-frame-options-or-solving-wrong.html

http://www.jtmelton.com/2012/02/03/year-of-security-for-java-week-5-clickjacking-prevention/

http://tools.ietf.org/html/draft-gondrom-frame-options