一、Cross Frame Script (跨框架脚本) 攻击
什么是Cross Frame Script?
很简单,做个实验就知道了。把下面的这段HTML代码另存为一个html文件,然后用ie浏览器打开。
<html>
<head>
<title>IE Cross Frame Scripting Restriction Bypass Example</title>
<script>
var keylog='';
document.onkeypress = function () {
   k = window.event.keyCode;
   window.status = keylog += String.fromCharCode(k) + '[' + k +']';
}
</script>
</head>
<frameset onload="this.focus();" onblur="this.focus();" cols="100%">
<frame src="http://www.baidu.com/" scrolling="auto">
</frameset>
</html>
当你在百度的搜索框输入字符时,你会发现左下角的状态栏上出现了你输入的字符。
二、Cross Frame Script 原理
利用浏览器允许框架(frame)跨站包含其它页面的漏洞,在主框架的代码中加入scirpt,监视、盗取用户输入。
三、Cross Frame Script 危害
一个恶意的站点可以通过用框架包含真的网银或在线支付网站,获取用户账号和密码。
解决方案
用户:留心浏览器地址,不在带框架页面中输入用户信息
网站管理员:
在页面中加入以下javascirpt代码可以避免网站被XFS:
if (top != self)    {
top.location=self.location;
}

XFS: Cross Frame Script (跨框架脚本) 攻击。 
什么是XFS攻击,下面举一个例子: 
Tom在QQ上发消息诱骗Jerry点击了下面的连接:

  1. http://thief.com

上面的连接返回了下面的html:

  1. <html>
  2. <head>
  3. <title>IE Cross Frame Scripting Restriction Bypass Example</title>
  4. <script>
  5. function alertKey(e) {
  6. alert("key press = '" + e.which + "'");
  7. }
  8. </script>
  9. </head>
  10. <frameset onload="this.focus();" onblur="this.focus();" cols="100%" onkeypress="alertKey(event);">
  11. <frame src="http://cuishen.iteye.com/" scrolling="auto">
  12. </frameset>
  13. </html>

对于Jerry来说,他以为自己在访问熟悉的网站,殊不知将输入的敏感信息暴露给了Tom (只要将上面alert 改成ajax call)。 
魔高一尺,道高一丈,对于XFS攻击也有防御的办法。  主要算法是: 
A. 对于确定你的网站没有使用frame的页面要打破frame (frame busting)

  1. <style>
  2. html { visibility:hidden; }
  3. </style>
  4. <script>
  5. if( self == top){
  6. document.documentElement.style.visibility='visible';
  7. }else{
  8. top.location = self.location;
  9. }
  10. </script>

B. 对于有使用iframe 和frame的页面当心anti-busting,换做下面的脚本:

  1. if top <> self then
  2. if top.location.hostname <> self.location.hostname then
  3. top.location = "http://cuishen.iteye.com/"
  4. end if
  5. end if

你的网站可能会毫不知情的被外面包裹一层frame,而变成了一个钓鱼网站,so... 请尽量避免在你的网站使用frame/iframe,并且应用frame busting脚本。 
对于user来说,请升级到IE7以上浏览器,并设置:  Navigate sub-frames across different domains  set to "Prompt" or "Disable", 这个将在浏览器层面防御XFS攻击。

XFS: Cross Frame Script (跨框架脚本) 攻击。的更多相关文章

  1. Cross Frame Script (跨框架脚本) 攻击

    一.Cross Frame Script (跨框架脚本) 攻击 什么是Cross Frame Script? 很简单,做个实验就知道了.把下面的这段HTML代码另存为一个html文件,然后用ie浏览器 ...

  2. 基于iframe的CFS(Cross Frame Script)和Clickjacking(点击劫持)攻击

    攻击原理:     CFS攻击(Cross Frame Script(跨框架脚本)攻击)是利用浏览器允许框架(frame)跨站包含其它页面的漏洞,在主框架的代码 中加入scirpt,监视.盗取用户输入 ...

  3. IBM Rational AppScan:跨站点脚本攻击深入解析

    IBM Rational AppScan:跨站点脚本攻击深入解析    了解黑客如何启动跨站点脚本攻击(cross-site scripting,XSS),该攻击危害(及不危害)什么,如何检测它们,以 ...

  4. IFrame安全问题解决办法(跨框架脚本(XFS)漏洞)

    最近项目要交付了,对方安全测试的时候检测出高危险漏洞,由于刚参加工作不久,经验不足,未涉及过此方面的东西.经过一番查询和探索,最终解决了这个问题,记录一下. 发现的漏洞为缺少跨框架脚本保护.跨框架脚本 ...

  5. ASP.NET Core中的OWASP Top 10 十大风险-跨站点脚本攻击 (XSS)

    不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻喷,如觉得我翻译有问题请挪步原博客地址 本博文翻译自: https://dotnetcoretutorials.com/201 ...

  6. CSRF跨站请求伪造与XSS跨域脚本攻击讨论

    今天和朋友讨论网站安全问题,聊到了csrf和xss,刚开始对两者不是神明白,经过查阅与讨论,整理了如下资料,与大家分享. CSRF(Cross-site request forgery):跨站请求伪造 ...

  7. 跨站点脚本攻击XSS

    来源:http://www.freebuf.com/articles/web/15188.html 跨站点脚本攻击是一种Web应用程序的攻击,攻击者尝试注入恶意脚本代码到受信任的网站上执行恶意操作.在 ...

  8. HTTP攻击与防范-跨网站脚本攻击

    实验目的 1.了解XSS -跨网站脚本攻击带来的危险性. 2.掌握XSS -跨网站脚本攻击的原理与方法 3.掌握防范攻击的方法 实验原理 跨网站脚本攻击之所以会发生,是因为网站的Web应用程序对用户的 ...

  9. XSS(跨域脚本攻击)应对之道

    1.概念 xss一般分为两类,反射型和存储型. 反射型xss指的是客户端的不安全输入而引起的攻击,例如: 在某网站搜索,搜索结果会显示搜索的关键词,搜索时关键词填入<script>aler ...

随机推荐

  1. 模拟使用zookeeper实现master选举

    1.模拟选举机器类 package com.karat.cn.zookeeperAchieveLock.zkclient; import java.io.Serializable; /** * 选举的 ...

  2. mysql 字段类型VARCHAR转换成DECIMAL

    在我们写代码的实际业务中,有时候实体类用的是String,数据库中自然是VARCHAR类型,但是如果这个实体的属性值放的是数字类型,你查询的时候又需要对它进行排序.sql怎么写呢. 别担心mysql提 ...

  3. SQL server 2008 r2 安装图文详解

    文末有官网下载地址.百度网盘下载地址和产品序列号以及密钥,中间需要用到密钥和序列号的可以到文末找选择网盘下载的下载解压后是镜像文件,还需要解压一次直接右键点击解如图所示选项,官网下载安装包的可以跳过前 ...

  4. SQL 十分位

    -- 十分位,这个算法不是很准确 select family_agreement_cnt -- 字段 ,dt -- 分区 ,rn -- 排序 ,cnt -- 总行数 ,percent2 -- 分位值 ...

  5. [2019BUAA软工]团队项目选择

    Team V1 项目分析 写在前面 项目 内容 这个作业属于哪个课程 BUAA2019软件工程 这个作业的要求在哪里 团队项目选择 参考链接 如何提出靠谱的项目建议 NABCD 我们在这个课程的目标是 ...

  6. MapReduce 调优-Combiner

    下图是演示了Combiner的好处 因为我们知道Hadoop的好处在于集群中有很多小的机器,组成了一个庞大的集群,把一个大的计算任务后者说复杂的计算过程分发到了一个个小的机器上面.但是这个集群一个致命 ...

  7. Unity3d C# 创建 物体

    using UnityEngine; using System.Collections; public class create : MonoBehaviour { // Use this for i ...

  8. notepad++查看Log

    安装步骤:打开notepad++,插件→ Plugin Manager→ Show Plugin Manager→ Avaliable→ 等待插件列表刷新出来后,选中Android Logger插件→ ...

  9. 百度 CDN公共库

    http://developer.baidu.com/wiki/index.php?title=docs/cplat/libs 简介 CDN公共库是指将常用的JS库存放在CDN节点,以方便广大开发者直 ...

  10. [OpenStack] [Liberty] Neutron单网卡桥接模式访问外网

    环境配置: * Exsi一台 * Exsi创建的单网卡虚拟机一台 * Ubuntu 14LTS 64位操作系统 * OpenStack Liberty版本 * 使用Neutron网络而非Nova网络 ...