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

JAVA年度安全 第九周 X-FRAME-OPTIONS,布布扣,bubuko.com

时间: 2024-10-07 21:22:54

JAVA年度安全 第九周 X-FRAME-OPTIONS的相关文章

杨玲 201771010133《面向对象程序设计(java)》第九周学习总结

<面向对象程序设计(java)>第九周学习总结 第一部分:理论知识 异常:在程序的执行过程中所发生的异常事件,它中断指令的正常执行. Java的异常处理机制可以控制程序从错误产生的位置转移到能够进行错误处理的位置. 程序中出现的常见的错误和问题有:用户输入错误:设备错误:物理限制:代码错误. Java把程序运行时可能遇到的错误分为两类:非致命异常:通过某种修正后程序还能继续执行.这类错误叫作异常.如:文件不存在.无效的数组下标.空引用.网络断开.打印机脱机.磁盘满等. Java中提供了一种独特

20155335 俞昆 2016-2017-2 《Java程序设计》第九周学习总结

学号 2016-2017-2 <Java程序设计>第九周学习总结 ##JDBC入门 在正式介绍JDBC前,已知JDBC是用来执行SQL的解决方案,开发人员使用JDBC的标准接口,开发人员不需接触底层数据库驱动程序的差异性. 本章,我们需要了解JDBC与API使用和概念,我们先要认识应用程序如何与数据库进行沟通,数据库本身是一种独立运行的应用程旭,程序员撰写的应用程序是利用通信协议对数据库进行指令交换,以进行数据的增加删除以及查找. 通常应用程序会利用一组专门与数据库进行通信协议的链接库,以简化

20145311 《Java程序设计》第九周学习总结

20145311 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 16.1JDBC 16.1.1JDBC简介 JDBC(Java DataBase Connectivity)是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商则对接口进行操作,开发人员无须接触底层数据库驱动程序的差异性. 厂商在操作JDBC驱动程序时,依方式可将驱动程序分为4种类型: ·Type 1:JDBC-ODBC Bridge Driver·Type 2:Native API

20165329 《Java程序设计》第九周学习总结

20165329 <Java程序设计>第九周学习总结 教材学习内容总结 第十二章 URL类 构造方法1 try { URL url = new URL("http://www.google.com"); } catch(MalformedURLException e) { System.out.println("Bad URL:"+url); } 构造方法2:用public URL(String protocol,String host,String f

20165208 2017-2018-2 《Java程序设计》第九周学习总结

20165208 2017-2018-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十三章 URL类 URL对象包含三部分信息:协议.地址和资源 创建URL对象两种方法: public URL (String spec) throws MalformedURLException public URL(String protocol,String host,String file) throws MalformedURLException 使用字符串初始化一个URL对象URL ur

20165235 祁瑛 2018-4 《Java程序设计》第九周学习总结

20165235 祁瑛 2018-4 <Java程序设计>第九周学习总结 教材学习内容总结 URL类 UR类是java.net包中的一个重要类,使用URL创建的对象的应用程序称作称作客户端程序. 一个URL类用如下的构造方法来创建一个类: public URL(String spec) throws MalformedURLException URL创建的对象是http协议,所包含的资源是默认的资源(主页) URL对象可以通过调用InputStream openStream()方法可以返回一个

20165324 《Java程序设计》第九周学习总结

学号 20165324 <Java程序设计>第九周学习总结 教材学习内容总结 第十三章 Java网络编程 URL类 使用URL创建对象的应用程序称为客户端 一个URL对象封装一个具体资源的引用 一个URL对象包含最基本的三部分信息:协议,地址和资源. URL类的构造方法: 该构造方法使用字符串初始化一个URL对象URL url=new URL("http://www.google.com"); public URL(String protocol,String host,S

20165318 2017-2018-2 《Java程序设计》第九周学习总结

20165318 2017-2018-2 <Java程序设计>第九周学习总结 目录 学习过程遇到的问题及总结 教材学习内容总结 第13章 Java网络编程 代码托管 代码统计 学习过程遇到的问题及总结 Q1:运行课本例子4时,代码中为汉字,但同样的输出的字符为乱码. 解决方法:检查后发现,使用的编码方式不一致,其他源文件使用的是GBK,而运行的Client4使用的是UTF-8,将这个源文件也改为GBK编码,就可以正确运行了. Q2:运行课本例子4后又运行例子3时,提示以下问题. 解决方法:我猜

20165225《Java程序设计》第九周学习总结

20165225<Java程序设计>第九周学习总结 1.视频与课本中的学习: 第十三章学习总结 URL类 URL对象包含三部分信息:协议.地址和资源 创建URL对象两种方法: public URL (String spec) throws MalformedURLException public URL(String protocol,String host,String file) throws MalformedURLException 使用字符串初始化一个URL对象URL url=new