如何防止自己的网站被电信iframe ?

2011-02-12 10:24:02 +08:00
 darasion
引自: http://www.techcheng.com/website/anti-telecom-iframe.html

电信耍流氓不是一天两天了,竟然拿别人的网站开刀,给网站加上iframe进行弹窗广告,既影响了别人网站的形象,还导致了一些其它问题。

比如我的网站橘汁仙剑网采用的是GBK编码,而电信的iframe强制网页编码为UTF-8,这样,我的网站一旦被电信iframe,那么只要用户在网站中点击浏览器的后退链接,那么网站就会显示乱码。这对网站形象来说真是天大的打击。试想用户看到这种网页肯定不会来第二次了。

于是在网上狂搜,终于找到了合适的解决办法,并且测试有效。在网站头部加入

<script language="javascript" type="text/javascript">
if (top.location !== self.location) {
top.location=self.location;
}
</script>

即可解决。

原理是只要遇到网页被iframe框住就从里面跳出来。
6262 次点击
所在节点    问与答
14 条回复
mepine
2011-02-12 10:32:18 +08:00
馬克。真讚。
Livid
2011-02-12 10:59:27 +08:00
V2EX 已经加入这段代码。
batfree
2011-02-12 11:04:11 +08:00
嗯,嗯,很好,很好。 豆瓣是被框住最多的网站。
xinzhi
2011-02-12 11:11:30 +08:00
电信再流氓一点,上面的JS是无效的。(Google:防止被框架代码+破解被框架代码)
keakon
2011-02-12 11:15:34 +08:00
以前我也曾在自己的网站这样做过

顺带一提,不要去比较location对象,没什么意义。如果要确保地址一致,比较它们的href属性,如果只要防止iframe,比较top !== self即可
Livid
2011-02-12 11:19:02 +08:00
@keakon 现在回到首页时,会整个页面白一下然后内容才出来,真是无语。

同祝愿上海电信早日倒闭。
qiaoka
2011-02-12 11:21:42 +08:00
@batfree 的确,我回老家的时候,只有访问豆瓣的时候才会被框,弹出广告。
darasion
2011-02-12 11:38:54 +08:00
iframe 这种恶劣的东西以我前见得多,现在少了。可能是不同运营商的关系吧。

目前我遇到最多的就是那种XXXX导航、XXXX纠错、XXXX防病毒。。这类的相对比较简单,自己换个DNS就好点了。
fim8
2011-02-12 12:41:40 +08:00
小儿科,如果电信在数据包里加JS,把HTML写进去,就悲剧了。
POPOEVER
2011-02-12 13:01:16 +08:00
这个N年前的老脚本,对付iframe包含的,对付电信应该没什么大用处,他们直接是加到数据包里面的吧,否则怎么叫流氓呢
apoclast
2011-02-12 14:50:14 +08:00
还是ssl彻底
lianghai
2011-02-12 17:36:37 +08:00
电信真是太狠了……这种恬不知耻的行为……
freefcw
2011-02-14 01:24:32 +08:00
@Livid 好像没有用啊,北京联通也是这样的,哎!疯了,我说怎么老是reload的时候出现重新加载框架

<html><head><title></title><style type="text/css">body {margin: 0px;padding: 0px;overflow:hidden;}</style></head><body><iframe id="fulliframe" name="fulliframe" src="" width="100%" height="100%" marginheight="0" marginwidth="0" frameborder="0"></iframe><script language="javascript" type="text/javascript">frames[0].location=window.location;function c(){try{var f=frames[0];var d=f.document;(function(s){})(d.readyState);if(d&&('complete'==d.readyState)){document.title=d.title?d.title:'';}else{setTimeout('c()',10);}}catch(ex){try{document.domain=document.domain.replace(/^\w+\./,'');c();}catch(ex){}}};c();</script><script src="http://59.51.96.37/pagead/ads.js?umask=25&amp;interval=1800&amp;vask=471873156&amp;uid=1400002501&amp;pid=72059025739331095&amp;o_url=www.v2ex.com/t/8442&amp;aname=99990012&amp;ic=&amp;vh=00007419,100|00007593,100|00007471,9|00023132,1|00007444,2|00023132,2|00007400,1|00007585,2&amp;al=0&amp;ipc_type=CTN&amp;ipc_nid=0" language="javascript" type="text/javascript"></script>
</body><style type="text/css">embed[type*="application/x-shockwave-flash"],embed[src*=".swf"],object[type*="application/x-shockwave-flash"],object[codetype*="application/x-shockwave-flash"],object[src*=".swf"],object[codebase*="swflash.cab"],object[classid*="D27CDB6E-AE6D-11cf-96B8-444553540000"],object[classid*="d27cdb6e-ae6d-11cf-96b8-444553540000"],object[classid*="D27CDB6E-AE6D-11cf-96B8-444553540000"]{ display: none !important;}</style></html>
darasion
2011-02-14 11:02:25 +08:00
@freefcw 囧。还是狂刷轮询的那种。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/8349

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX