Web应用安全之点击劫持(CLICKJACKING)与X-FRAME-OPTIONS HEADER

简介:

/玄魂

 

         目录

 

 

 

前言... 

 

1.1 点击劫持(clickjacking attacks)... 

 

1.2  Frame Bursters. 

 

1.3 The X-Frame-Options. 

 

1.3.1 X-Frame-Options. 

 

1.3.2 Apache配置X-Frame-Options. 

 

1.3.3 Nginx 配置X-Frame-Options. 

 

1.3.4 IIS配置X-Frame-Options. 

 

1.4 浏览器兼容性... 

 

前言

Clickjacking(点击劫持)是由互联网安全专家罗伯特·汉森和耶利米·格劳斯曼在2008年提出的。

是一种视觉欺骗手段,在web端就是iframe嵌套一个透明不可见的页面,让用户在不知情的情况下,点击攻击者想要欺骗用户点击的位置。”

假设你访问一个web站点并看到如下的页面:

免费的午餐谁都喜欢,当你满怀期待的点击按钮“WIN”的时候,恭喜你,你已经被点击劫持了。你实际点击的链接如下:

这是登录网上银行之后的一个转账链接,转移你的全部资产给Kim Dotcom先生。但是你根本你没有看到这个页面,像做梦一样。这只是一个简单的示例,实现上在网上银行转账不会这么简单,但是却告诉我们一个道理,访问网页和看魔术表演一样,看到的不一定都是真的。

下面我们具体讨论下点击劫持的内部机制,和防御措施。

1.1点击劫持(CLICKJACKING ATTACKS

点击劫持的表象一般是用户点击了页面的A元素,但是实际上接收点击事件的却是另外一个元素。

现在改变下页面内个元素的透明度,再来看下刚才的页面。

我们可以看到,在ipad页面是上部还有个层,实际上是一个iframe,现在的透明度为50%,实际的页面中它的透明度为0%,虽然被隐藏不可见,但是随时都可以被激活。

 Firefox3D视图下,观察这个页面更明显。

被隐藏的iframeIPAD页面的上部,同时转款的链接正好在“WIN”的上方,因为设置了透明度,用户只能看到“WIN”,但实际点击的是转款。

攻击者的页面内容可能是这样的:

<div style="positionabsoluteleft10pxtop10px;">Hey - we're giving away iPad minis!!! Just click the WIN button and it's yours!!!</div>

<div style="positionabsoluteleft200pxtop50px;">

  <img src="http://images.apple.com/my/ipad-mini/overview/images/hero.jpg" width="250">
</
div>

<div style="positionabsoluteleft10pxtop101pxcolorredfont-weightbold;">>> WIN <<</div>

<iframe style="opacity0;height="545" width="680" scrolling="no"src="http://mybank/Transfer.aspx"></iframe>

代码就是这么简单,下面我们观察一下点击“WIN”时实际上点击“转款”链接时的http请求信息。

从图中标记的地方,可以看到请求的实际地址和身份验证的cookie信息。当然这样的攻击能成功,在于用户已经登录的网上银行。这样的攻击行为和请求伪造很类似。

下面我们讨论下针对点击劫持的基本防御方法。

1.2  FRAME BURSTERS

这是在页面上通过脚本来防止点击劫持或者iframe恶意请求的方式,本文不做介绍,详见http://seclab.stanford.edu/websec/framebusting/framebust.pdf,乌云有篇类似的中文文章共参考http://drops.wooyun.org/papers/104

1.3 THE X-FRAME-OPTIONS

X-Frame-Options HTTP 响应头,可以指示浏览器是否应该加载一个iframe中的页面。网站可以通过设置X-Frame-Options阻止站点内的页面被其他页面嵌入从而防止点击劫持。

1.3.1 X-FRAME-OPTIONS

X-Frame-Options共有三个值:

DENY

任何页面都不能被嵌入到iframe或者frame中。

SAMEORIGIN

页面只能被本站页面嵌入到iframe或者frame中。

ALLOW-FROM URI

页面自能被指定的Uri嵌入到iframeframe中。

1.3.2 APACHE配置X-FRAME-OPTIONS

在站点配置文件httpd.conf中添加如下配置,限制只有站点内的页面才可以嵌入iframe

Header always append X-Frame-Options SAMEORIGIN

配置之后重启apache使其生效。该配置方式对IBM HTTP Server同样适用。

如果同一apache服务器上有多个站点,只想针对一个站点进行配置,可以修改.htaccess文件,添加如下内容:

Header append X-FRAME-OPTIONS "SAMEORIGIN"

1.3.3 NGINX 配置X-FRAME-OPTIONS

 nginx/conf文件夹下,修改nginx.conf ,添加如下内容:

add_header X-Frame-Options "SAMEORIGIN";

重启Nginx服务。

1.3.4 IIS配置X-FRAME-OPTIONS

web站点的web.config中配置:

<system.webServer>

  ...

  <httpProtocol>

    <customHeaders>

      <add name="X-Frame-Options" value="SAMEORIGIN" />

    </customHeaders>

  </httpProtocol>

  ...

</system.webServer>

1.4 浏览器兼容性

桌面浏览器:

 


本文转自玄魂博客园博客,原文链接:http://www.cnblogs.com/xuanhun/p/3610981.html,如需转载请自行联系原作者

目录
相关文章
|
6天前
|
SQL 安全 Java
理解Web安全:防止Java Web应用的安全漏洞
【4月更文挑战第3天】在互联网时代,Java Web应用面临严峻的安全挑战,包括注入攻击、XSS、CSRF等。为保护应用,需实施安全措施和最佳实践:如输入验证、输出编码、使用安全框架、防范CSRF、管理会话、加密数据、智能错误处理及定期安全审计。通过这些方法,可降低安全风险,但需持续关注安全趋势并适应新技术。
|
6天前
|
安全
网易web安全工程师进阶版课程
《Web安全工程师(进阶)》是由“ i春秋学院联合网易安全部”出品,资深讲师团队通过精炼的教学内容、丰富的实际场景及综合项目实战,帮助学员纵向提升技能,横向拓宽视野,牢靠掌握Web安全工程师核心知识,成为安全领域高精尖人才。 ## 学习地址
24 6
网易web安全工程师进阶版课程
|
5月前
|
安全 测试技术 网络安全
2022年中职“网络安全“江西省赛题—B-4:Web安全深入测试
2022年中职“网络安全“江西省赛题—B-4:Web安全深入测试
68 1
|
6天前
|
XML 云安全 安全
了解常见的web漏洞-XXE漏洞,日常如何做好web安全
随着网络技术的不断发展,网站安全问题日益受到人们的关注。当前随着技术发展,网站存在一些常见的可能被攻击者利用的漏洞,而在众多网站安全漏洞中,XXE(XML External Entity)漏洞是一个不容忽视的问题。今天我们就来分享了解一下关于XXE漏洞的概念、原理以及日常上有哪些可以措施可以防护网站安全。
|
6天前
|
JavaScript 前端开发
【Web 前端】如何在点击一个按钮时使用 jQuery 隐藏一个图片?
【5月更文挑战第2天】【Web 前端】如何在点击一个按钮时使用 jQuery 隐藏一个图片?
|
6天前
|
云安全 数据采集 安全
阿里云安全产品,Web应用防火墙与云防火墙产品各自作用简介
阿里云提供两种关键安全产品:Web应用防火墙和云防火墙。Web应用防火墙专注网站安全,防护Web攻击、CC攻击和Bot防御,具备流量管理、大数据防御能力和简易部署。云防火墙是SaaS化的网络边界防护,管理南北向和东西向流量,提供访问控制、入侵防御和流量可视化。两者结合可实现全面的网络和应用安全。
阿里云安全产品,Web应用防火墙与云防火墙产品各自作用简介
|
6天前
|
SQL 安全
CTF--Web安全--SQL注入之‘绕过方法’
CTF--Web安全--SQL注入之‘绕过方法’
|
6天前
|
SQL 安全 PHP
CTF--Web安全--SQL注入之Post-Union注入
CTF--Web安全--SQL注入之Post-Union注入
|
6天前
|
SQL 存储 安全
CTF--Web安全--SQL注入之报错注入
CTF--Web安全--SQL注入之报错注入
|
6天前
|
SQL Web App开发 安全
CTF-Web安全--SQL注入之Union注入详解
CTF-Web安全--SQL注入之Union注入详解