接下来的问题是如何销毁网页里所有的ifra me对象;使用JS实现的原理是这样的:使ifra me里的请求地址变成空白页(about:blank),再将ifra me对象从DOM(文档对象模型)中移除就可以切断所有ifr ame里的请求了。移除DOM节点的方法比较多,我这里就用 outerHTML这个属性吧。CSS代码如下:
ifra me{v:expression(this.src='about:blank',this.outerHTML='');}
说明:前面的v字是灵儿自己定义的一个CSS属性,这里的this代表所有将要描述外观的ifra me对象,中间的逗号代表二句代码一起执行,没有执行优先顺序,这可是强有力的保证噢。about:blank代表空白页,大家都知道的。outerHTML属性是DOM对象包含自身的HTML代码,而innerHTML则是DOM对象(不含本身)里面所包含的HTML代码。
爽快,代码写好了,就让我信来测试一下有没有效果。
首先,新建一个网页,插入以上的CSS代码(或在您现有的CSS代码里加入上面那句):
本帖相关代码<style type="text/CSS">
i frame{v:expression(this.src='about:blank',this.outerHTML='');}
</style>
然后在这个页面插入几个I FRAME代码,假设它们是被挂的木马网页。代码如下:
<if rame src=""></ifr ame>
<ifr ame src="http://www.xxx.com/"></if rame>网站
<ifr ame src=" http://www.xxxx.com/"></ifr ame> 网站二
保存为noifra me.htm,打开浏览器测试一下(本地测试需要启用顶部禁用的脚本的提示条哦)。我这里使用抓包工具来测试,不过也没有必要使用抓包工具,一个最简单有效的方法是打开IE的缓存文件夹,先清空它,再刷新这个页面,看看缓存文件夹里有没有这三个网站里的文件。如果没有,说明没有任何请求结果被返回——测试结果是令人满意的,我的脸上有些微笑 ^^*,这时同事递给我一块饼,蛮好吃的。
提示:Windows XP SP2的缓存文件夹位置 C:Documents and SettingsAdministratorLocalSettingsTemporary Internet Files
细心的朋友发现问题来了,如果我自己的网页里要使用ifra me这个东东怎么办?
答:如果要使自己的ifra me显示在网页里,而别人挂的I FRAME马都不起作用,在CSS里加一个
本帖相关代码#haoexe{v:expression() !important}
对应的I FRAME代码为:
<i frame id="haoexe" name="xxx" src="http://www.xxx.com/"></i frame>
就OK了。
提示:IE7中优先执行标注有"!important"描述的样式,IE6不认识!important,采用就近原则,所以IE6的这个代码放在CSS的最后就可以了。
这里的f126,有很多朋友有疑问,他们问我为什么取"f126",我这样回答——这个f126是随意取的,只要下面的ifra me里的ID属性和CSS里的一致就行了。
BBSGOOD用户加在后台CSS样式文件编辑器中,如果自己不用ifr ame,可以直接加入以下语句
i frame{v:expression(this.src='about:blank',this.outerHTML='');}
文章来源:http://hi.baidu.com/xiaosula/blog/item/eca297cdebdb8a570fb345d5.html
标签: