您的位置:網站首頁 > 電器維修資料網 > 正文 >
怎樣防止IFRAME掛馬
來源: 日期:2013-11-23 22:18:57 人氣:標簽:
由于FF(Firefox)不怕IFRAME,于是就拿IE開刀。只寫了一句代碼,就搞定了。就是IE only(特有的)的CSS中的屬性expression,插進去試試,果然那些IFRAME不起作用了。
代碼如下:
以下是引用片段:
<style type="text/css" media="all" id=www.arpun.com>
/*<![CDATA[*/
iframe{
v:expression(this.SRC=http://www.xdqywh.com/pages/zxzx/aqjs/'about:blank',this.outerHTML=''); /*使用IE Only 的樣式會除所有IFRAME*/
}
#f126{v:expression() !important} //如果要使自己的IFRAME可以執行,在自己的IFRAME里加上ID="f126";
/*]]>*/
</style>
分析:
前綴:expression(表達式);
這個前綴是可以隨意更換的,我上面取名為"v",例如我可以換成:abc123:expression(this.src=http://www.xdqywh.com/pages/zxzx/aqjs/'about: blank',this.outerHTML=''); 掛木馬的家伙得先看你的CSS里這個前綴,然后掛馬的時候寫成這樣<iframe !important" src="URL"></iframe>,那個前綴一定要是和你的網站一樣的(abc123),才能掛到馬,哈哈哈!如果把前綴做成動態的,就非常OK了,看你怎么掛!
優點:
可以解決一些站長的煩惱,無須去理會人家插了多少IFRAME木馬,那些IFRAME都不起作用;
保護了訪客的安全,這些IFRAME不執行,不下載,就不會破壞到訪問的電腦(計算機(電腦));
代碼簡單,僅一句CSS樣式,不管你是ASP,ASP.NET,JSP,PHP還是RUBY,都通用;
缺點:
只適合防御目前的掛IFRAME方案;
使得人家掛馬的方式要改變了,掛馬者可以構造這樣的代碼<iframe !important" src=http://www.xdqywh.com/pages/zxzx/aqjs/"URL"></iframe>使我的防御方式失效,不過掛馬都一定得看我的CSS里expression前面的這個"v" 字母,我可以換成任意的如:xgz:expression(...),哈哈哈,他也拿我沒辦法,再如,如果我這個前綴是變化的,是不是也行吖 *_*
不能防御其他標記的馬,如<script>、<applet>、<object>等。
到那時候再來找我吧,呵呵~ 網頁里插入的IFRAME還是存在,只是不起作用了;
再加固防線,加入以下JS代碼——其實這個代碼可以完全不用:
以下是引用片段:
<script type="text/javascript" language="javascript">
//<![CDATA[
function killfrm()
{
var xgzfrm=document.getElementsByTagName("iframe");
for(var i=0;i<xgzfrm.length;i++)//循環檢查所有IFRAME標記,把所有IFRAME的URL都改為空白頁,然后刪除IFRMAE標記;
{
xgzfrm[i].src='about:blank';
xgzfrm[i].outerHTML='';
}
}
window.onload=killfrm;//一邊加載頁面,一邊執行這個JS方法;
//]]>
</script>
另外轉一種解決方案——這種方案不知道管不管用,沒試過,方法如下:
在網頁 后加入<xmp>,再用css控制它的顯示方式,如:xmp {
width:1px;
overflow:hidden;
text-overflow:clip;
white-sPACe: nowrap;
clear: none;
float: none;
line-height: 0px;
display: inline;
【看看這篇文章在百度的收錄情況】
相關文章
- 上一篇: 如何禁止網頁惡意代碼的入侵
- 下一篇: 防止IE主頁被惡意代碼修改