当前位置:首页 > 开发 > 系统架构 > 架构 > 正文

XFS攻击一例

发表于: 2013-08-13   作者:cuishen   来源:转载   浏览:
摘要: XFS: Cross Frame Script (跨框架脚本) 攻击。 什么是XFS攻击,下面举一个例子: Tom在QQ上发消息诱骗Jerry点击了下面的连接: http://thief.com 上面的连接返回了下面的html: <html> <head> <title>IE Cross Frame Scripting
XFS: Cross Frame Script (跨框架脚本) 攻击。

什么是XFS攻击,下面举一个例子:

Tom在QQ上发消息诱骗Jerry点击了下面的连接:
http://thief.com

上面的连接返回了下面的html:
<html>
<head>
<title>IE Cross Frame Scripting Restriction Bypass Example</title>
<script>
function alertKey(e) {
	alert("key press = '" + e.which + "'");
}
</script>
</head>
<frameset onload="this.focus();" onblur="this.focus();" cols="100%" onkeypress="alertKey(event);">
 <frame src="http://cuishen.iteye.com/" scrolling="auto">
</frameset>
</html>

对于Jerry来说,他以为自己在访问熟悉的网站,殊不知将输入的敏感信息暴露给了Tom (只要将上面alert 改成ajax call)。

魔高一尺,道高一丈,对于XFS攻击也有防御的办法。
主要算法是:

A. 对于确定你的网站没有使用frame的页面要打破frame (frame busting)
        <style>
                html { visibility:hidden; }
        </style>
        <script>
                if( self == top){
                        document.documentElement.style.visibility='visible';
                }else{
                        top.location = self.location;
                }
        </script>

B. 对于有使用iframe 和frame的页面当心anti-busting,换做下面的脚本:
if top <> self then
    if top.location.hostname <> self.location.hostname then
        top.location = "http://cuishen.iteye.com/"
    end if
end if


你的网站可能会毫不知情的被外面包裹一层frame,而变成了一个钓鱼网站,so... 请尽量避免在你的网站使用frame/iframe,并且应用frame busting脚本。

对于user来说,请升级到IE7以上浏览器,并设置:
Navigate sub-frames across different domains
set to "Prompt" or "Disable", 这个将在浏览器层面防御XFS攻击。

XFS攻击一例

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号