如何防止网站被电信运营劫持弹广告

最近家里的光纤宽带在访问一些特定的行业网站的时候总时不时的被电信弹窗,这类利用 iframe 劫持网站弹广告的方式实在太下作了,其实就是一种变相的网络攻击行为。而且这种类型的广告经常会让正常网站的访问用户误解,影响网站的声誉,比如有不明所以的用户会问「你们网站原来没有广告的,现在怎么一访问就弹广告呢?」

如何有效避免这种 iframe 劫持? 有不少朋友分享过相关的技巧,比如常用的代码:

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

将上述代码嵌入页面头部,可某种程度上避免。不过,电信运营商的手段也在不断升级,稍加变化还能绕过去。

有研究人员给出了一段升级代码

<style> html{display : none ; } </style> 
<script>
if( self == top ) {
          document.documentElement.style.display = 'block' ;
   } else {
       top.location = self.location ;
   }
</script>

国外有个特定术语叫 Framekiller ,说的就是如何抵御这种劫持的事儿。不过这个代码也有可能再次被绕过去,就看运营商的流氓手段到什么程度了。或许最为有效的办法是加密传输内容(https)。Updated: 在电信运营商那里,这套玩意儿叫做「智能流量增值系统」,其实就是「DNS 劫持」。另外还有更高级的大杀器,「网络定向直投系统」。网络上能找到一些介绍信息。

网络定向直投系统(也称 iPUSH ),是由中国电信开发的划时代网络技术,可以以各种格式定时定点将广告推送到网络在线用户端的浏览主页面。 通过这个传播平台,不论电信用户在浏览器地址栏中输入任何网址进行浏览,网络定向直投系统均可将广告主动送达用户,不依赖于某个固定的网站。

网络定向直投系统「原理」:基于宽带接入网,通过对用户上网行为的分析,在用户上网时、或正在上网的过程中,系统主动、定向、策略性、个性化的向用户推送广告宣传信息。 方式:根据用户当前浏览的网站或匹配对应的关键字,向用户推送图片、Flash、视频等多媒体交互式广告内容。有朋友告诉我,这套玩意儿「通过对电信核心线路的过滤,把目标 HTTP 包整个给替换掉,换成他们自己的页面」,总之电信运营商为了牟利,上的全是黑客级手段。

直白的说,就是在用户好不知情的情况下强行插广告,非常的流氓,非常的下作,非常的无耻。

单纯从用户端无法屏蔽这种流氓广告,建议自己有网站的朋友们,工程师们,想办法从网站层面抵制这种行为,别让流氓们占了便宜。也欢迎大家给我补充一下更好的办法。我们抵制一点,他们就会收敛一点。

此文位于 Security on by .
转载须以超链接形式标明文章原始出处和作者信息及版权声明.

53 thoughts on “如何防止网站被电信运营劫持弹广告

  1. 张刚

    无论如何都不可能阻止这种劫持,它是直接从http协议上实现的,伪造远程主机返回一个“正常”的http包,客户端不可能识别。
    比较糟糕的情况是,哪怕你打开某银行的客户端,如果有http交互,也可以弹出一个浏览器来展示广告

    Reply
  2. whereisnorth

    工信部投诉之
    我还遇到联通增值业务给我剪辑录音的事。就是那种“喂,你是机主吗?”那种。我要求他们给我听当时录音,并录下来了。跟当时通话时间一比少了40秒,他们答应赔我两倍。我只要求退款,并要求保护,不给我打这种电话

    Reply
  3. 小猪头三元

    手机打开这篇文章。最上面看到我本月的上网流量还有多少,还有一个推荐。。移动也学会电信这套了。。

    Reply
  4. Justin Lau

    用了中國電信半年左右就出現這個情況。我是香港過來的,對他們這種做法很看不慣,就立即打電話投訴說,我付費用他們的服務,合約上沒說我有義務要讓他們插入廣告;幾天之後廣告就停止了。

    他們的針對性很強,同一個地區同一時期也是用中國電信的外國朋友就完全沒有出現過這種情況,可能因為他不會看中文網站。

    Reply
  5. Qianfeng

    完全没用… 现在劫持都是 域名一样,但是真正的网站被iframe了……

    Reply
  6. patching

    电信运营商就是超级黑客。这种行为非常无耻下流。之前打电话投诉之后电信就可以针对单个用户关掉推送,但是这样并不能保护网站主的利益。不知道中国有没有相关的法律约束呢,最好是能从法律角度解决。

    Reply
  7. mars

    网页内容已经被运营商替换成iframe形式的了,加上上面那些些代码,岂不就是不断在刷新页面?感觉很难有太好的方案,这些运营商实在太无耻了。

    Reply
  8. 丁丁

    打电话给运营商,直接要求取消这些“服务”,然后搬出工信部,保证3天内解决,客服甚至还会帮你取消在其他地方使用的帐号上的这些“服务”。

    Reply
  9. 彬彬0123

    我昨天投诉了,今天电信来人打了个电话“升级”了一下就好了…昨天他们连百度都劫持啊…上百度得先通过114…不过现在好了,DNS修改什么的我都试过,没用…

    Reply
  10. reactorcooler

    工信部是强大武器,运营商总是捏软柿子的。我上次打过几个电话之后就再也没有这种iFrame. 反抗强X的用户永远只是小部分,电信才不在乎。终极大法是打10000

    Reply
  11. DeXu.Xie

    现在修改DNS也无用了,赛门铁克DNS慢,也会导致国内一些网站无法访问,Google DNS,大家懂的,很恼火。。

    Reply
  12. 斌 叶

    深圳电信这样做过,电话投诉时帮他们回顾了一下大东电信和中国电信合作史上的优质服务,数小时内解决了。

    Reply
  13. roymax

    打10000号可以让他们关掉的。这个还好了,起码还可以访问,上海电信还有个叫「绿网服务」,无端的就让你访问不到目标网站

    Reply
  14. Viking

    我昨天也碰到这样的问题了,上海电信,在访问大网站时,右下角跑出了一个小窗口的广告,对电信的行为表示鄙视

    Reply
  15. liufengyun

    我以前用南京电信,他们常常在深夜弹广告,电话投诉他们,从此再也没有遇到过这样的现象了。

    Reply
  16. WANG -G

    新看到的代码是直接在原html head中插入了 ads.js , 并在body标签onload 中加了init方法调用广告.

    Reply
  17. Pingback: 如何防止网站被电信运营劫持弹广告 - 奈斯鹏鹏

  18. www.nameqi.com

    博主你好,我在博客里加了一个“独立博客大全”的版块,有时间过来看看,如果没有添加你的,通知我一声,无条件收录!

    Reply
  19. Pingback: 无处遁逃 | 知行近思

    1. 90arther

      spider是直接爬你网站的内容, 运营商最多在用户访问的时候拦截,他们还没法入侵你的服务器。对SEO没影响的。

      Reply
  20. zz

    127.0.0.1 focus.inhe.net
    这个是我这北京联通朝阳的一个推送广告推送地址,添加到hosts文件中,可以组织内容显示,仅仅会弹出一个框框~免去眼珠子看到乱七八糟的广告~

    Reply
  21. Pingback: 如何防止网站被电信运营劫持弹广告 | 知之然说 – Technology Learning

Leave a Reply

Your email address will not be published. Required fields are marked *