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