這個(gè)頁面包含了四個(gè)IFRAME,它們分別是以下幾個(gè)網(wǎng)站,代碼如下(查看源文件);
現(xiàn)在開始測(cè)試:
在測(cè)試之前,請(qǐng)先清空緩存文件夾;再來刷新這個(gè)頁面;然后回到緩存文件夾驗(yàn)證一下,可以看到緩存里沒有一個(gè)以上4個(gè)網(wǎng)站的任何文件,只有baidu.com加載了,代表IFRAME不起作用;另外還經(jīng)過嚴(yán)格的抓包測(cè)試,發(fā)現(xiàn)沒有任何返回?cái)?shù)據(jù)包; 經(jīng)過測(cè)試,這個(gè)解決方案除了IFRAME里面的JS代碼alert方法不能屏蔽之外,其他任意JS都可以不起作用; 提示:Windows XP SP2的緩存文件夾位置 C:Documents and SettingsAdministratorLocal SettingsTemporary Internet Files
解決方法如下――關(guān)鍵代碼:
在<style></style>標(biāo)記中加入:
iframe{v:expression(this.src='about:blank',this.outerHTML='');/*使用IE Only 的樣式會(huì)除所有 IFRAME */}
如果要使自己的IFRAME顯示在網(wǎng)頁里,別人掛的IFRAME馬都不起作用,在CSS里加一個(gè) #f126{v:expression() !important} 就OK了,
對(duì)應(yīng)的IFRAME代碼為:<iframe id="f126" name="f126" src="http://www.baidu.com"></iframe>
當(dāng)然掛馬者可以構(gòu)造這樣的代碼<iframe style="v:expression() !important" src="URL"></iframe>使我的防御方式失效,不過它得特意去看我的CSS里iframe里的前綴v,如果我的v是變化的呢,哈哈,是不是也不管用呢!
再加入以下JS代碼――其實(shí)這個(gè)代碼可以完全不用:
為了防止誤會(huì),靈兒刪除了這段JS代碼;
更多問題請(qǐng)聯(lián)系靈兒:MSN/E-mail:www@xiaogezi.cn QQ:106456213 Blog:http://blog.xiaogezi.cn
新聞熱點(diǎn)
疑難解答
圖片精選