使用北京联通 ADSL 宽带上网,会弹出广告,效果大致如下图。
- 这是我的个人博客(https://myfairland.net/),可以保证本身是没有广告的。
- 北京联通的做法是把原始页面替换成它的广告页面,原始页面放到一个 iframe 里面(实际上是搞了两层 iframe)。图中鼠标选中的地方上面的那个 iframe 里才是真正原始页面的内容。
- 图中鼠标选中的那块是实际的广告内容区域。(本来广告是在右下角的,并且持续若干秒之后会隐藏。我为了让它显示出来把控制位置的 CSS 删了,所以现在在正中了。)
- 联通广告一般会有些标记,比如“京城时讯”、“联通新农村”什么的。
- 几个月前就遇到了弹出广告,当时我打电话投诉,广告暂时消失了。我以为投诉管用,还写了一篇博文记录。可是没过多久,广告又回来了。
网上流传很多办法,但是大部分都不适用于联通这种广告:
- 向 10010、工信部投诉:已经不可行。从法理上已经无法投诉。
- 现在联通沃家庭套餐的合同里有一行小字,说联通可以推送优惠信息。并没有无广告的套餐可选。虽然也许可以辩称这是霸王条款什么的(签协议的时候,联通员工并没有向我指出会投放广告),但是难度很大,毕竟写在合同里了。
- 网上很多文章说改 DNS,但对北京联通这种广告不管用。我用的是 Google 的 DNS 8.8.8.8,仍然有广告。北京联通这不是 DNS 劫持,而是直接把人家网站的页面内容劫持了,加了个 iframe。
- 有人说不要用联通自动的客户端拨号,还有说用路由器就不会有广告,也不管用。我从来没用过联通的客户端,一直是路由器,仍然有广告。
- 有人说浏览器有阻止弹窗的功能,不适用,这个不是弹窗。
- 想通过各种技术屏蔽手段屏蔽广告服务器是不行的。
- 技术手段包括但不限于:
- 改 hosts 文件屏蔽域名:不适用,联通这里用的是 IP,没有域名。
- 防火墙(比如 Windows 7 自带就有)。
- 在 360、卡巴斯基之类软件的反广告或黑名单里面设置。
- 在路由器上屏蔽该域名或 IP。
- IE —— 工具 —— Intelnet选项 —— 安全 —— 受限站点 —— 站点。(我居然没有在 Chrome 里找到这个功能。)
- 技术手段包括但不限于:
- 直接屏蔽广告内容,用Adblock 之类有广告屏蔽功能的浏览器扩展,也不行。
- 我这里 AdBlock Plus 的 Chrome 版甚至连隐藏广告的作用都没有。Firefox 版也许会有用吧,但 Chrome 版无效。
- 这样隐藏广告,即使能让你看不见广告,但是页面还是被联通劫持着在一个 iframe 里面,导致页面上很多功能无法正常使用,比如点了链接但地址栏里的网址还是不变,很多链接点不开,等等。而且,这样有很严重的安全问题。
可能有效的办法:
- 据说用加密代理有可能有效,比如全程 VPN、HTTPS、SOCKS 代理。
- 因为内容是加密的,ISP 甚至不知道你访问的 URL,所以无法插广告。
- 这个我没试。不过访问 HTTPS 网站好像确实没遇到过弹出广告。
- 即使有效,全局翻墙速度太慢,不是理想解决方案。
- 有人写了一个 Chrome 扩展来屏蔽电信广告,但不知对北京联通这种广告是否有效(各地的运营商强插广告的手段不太一样……)
- Firefox 版的 FoxyProxy 有一个匹配页面内容的功能,如果页面有特定内容,可以重载页面并使用代理打开。但是 Chrome 版似乎无此功能。而且我们也不需要使用代理打开。
目前所知最有效的应对手段:
- 思路:
- 从技术上彻底屏蔽似乎是不可能的,只能尽量让其不影响上网体验,让使用者尽量感觉不到广告。
- 联通这个广告的特性:随机出现(暂时没找到出现规律),一般刷新一次或几次就能刷出来正常页面。
- 根据这个特性,应对办法就是对页面内容进行匹配,如果含有广告内容,则自动刷新页面。
- 如果刷新速度足够快,就能让使用者来不及看到广告。这可能是目前对用户影响最小的办法了。
- 如果网速偏慢,还是有可能看到广告,不过至少省了手动刷新的那一下操作。
- 办法:
- 实在不会自己动手做扩展的同学们也不用急,我根据姬有酒的方案做了一个 Chrome 扩展,目前感觉还行,我准备先试用几天,如果没问题,会放出让大家下载 :)
对于站长和独立博客的博主来说,还可以用一些技术手段禁止别的站点在 iframe 里引用自己。
- 也就是说让别人上你的网站,不会遇到运营商插入的 iframe 广告。否则用户很可能以为是你在放广告,你就成替联通背黑锅的了。
- 既然是站长应该懂点技术吧,具体方法请自行搜索“禁止 iframe 嵌套”之类的关键词 :)
此文是针对北京联通的,各地运营商插入广告的方式各不相同,那些不适用于北京联通的办法,说不定适用于你的运营商。我相信此文对于广告解决办法的总结算是比较全面的,所以,如果你遇到弹出广告,可以把我上面说的办法挨个试过来,估计总有一条能适合你 :)
本文作者:Betty | 本文地址: https://myfairland.net/block-unicom-ad/
本站文章除特殊标明者外均为原创,版权所有,如需转载,请以超链接形式注明作者和原始出处及本声明
http://supercat-lab.org/ 这个家伙为了不让我把他的网站圈到 iframe 里,在 head 里加了下面几行代码:
我可不是给他的博客作广告哦……
<script language=”javascript”> <!–
if (top.location != self.location)top.location=self.location;
// –>
</script>
居然显示不出来,改成这样试试。
嗯,很好……
这个插件方法略显麻烦啦,而且局限是,这个插件只能是定制针对某一个网站的,而且还必须要用户安装才行。
用前面vx13提到的方法更好,只要在你的网站加上这段代码就行。所有访客都可以自动刷新了。
那个还可以精简下:if( top!==self ){ top.location = self.location }
BTW:北京联通的广告真恶心居然贴在页面正中间……上海的就好些,弹在右下角 = =
反了反了 :) 我说的是普通用户,上任何网站都可能被联通强插广告,用我说的办法就不会看到广告了。你说的是站长怎么让自己的站不被插广告 :)
本来广告是在右下角的,并且持续若干秒之后会隐藏。我为了让它显示出来把控制位置的 CSS 删了,所以现在在正中了。
在ie(ie9之前)这个方法还是可以绕过去的,联通可以在top的页面里覆盖location对象,被嵌套的页面就无法跳出了。
var location = {}
OK,订阅了 :)
现在联通越来越斗,越来越恶心了
深圳电信也常这么做,投诉也没有用。
http://www.cnblogs.com/exfx/archive/2012/07/27/2612526.html#commentform看看这个思路
谢谢,看起来不错~
北方地区的联通,南方地区的电信,都是店大欺客啊,昆明的联通几乎从来不敢干这个事情
北京联通好坏啊
在路由里面屏蔽链接可以么,我的弹出广告都是联通用其他联通的后台服务器推送的,我直接屏蔽了推送的网站,以后就不出现了
当然需要有这种功能的路由,一般openwrt的路由,都有这种网址过滤功能
我这里如果屏蔽他的广告网址,就会导致正常的网址也打不开。联通就相当于是做了个跳转的页面,你不访问那个跳转页面,就无法访问到实际的页面。
重庆联通也有这问题,叙述一下我的解决方法~
感觉现在联通都不是用的DNS劫持来插广告了~而是DNS污染~和GFW的原理相似~在干线路由上检测到DNS查询请求就立即抢先冒充返回DNS回应~由于一般ISP的DNS返回都比别的DNS速度快故而会先到达~系统不校验就接受了假返回包,从而中招~所以无论改或不该本机DNS都是没用的。因为查询一定会过联通的干线路由。我不是做网站的所以不知道要怎么在服务端处理掉这个。但是如果光自己的话用chrome加adblockplus就可以~楼主说不行是因为没有增加合适的屏蔽规则~
当广告弹出的时候使用chrome的审查元素~找到对应广告框的元素标志~就是在最下方的那个标签名字~比如重庆联通的是div#floatAd然后按规则把他加到adblock的自定义规则就可以了~应该最终是##div#floatAd或者###div#floatAd~为了更加保险还可以在chrome的选项-高级选项-页面内容-在javascript将那个劫持套嵌的ip地址当特例加进去选成禁止执行~这么做是因为我发现那个ip除了把原网页嵌了进去还来了个js脚本~用于大小调整什么的。如此广告就显示不出来了~如果对那个劫持的ip进行直接屏蔽的话~就总有那么些几率打不开网页~体验比插了广告还要烂~所以还是隐藏广告比较好~
愿楼主也能成功~
~这种方法也就技术宅自个用用~毕竟比较麻烦~也罢也罢~
最后骂一句~ISP混蛋~欺负广大镇民
谢谢~
用 Adblock 隐藏广告,即使能让你看不见广告,但是页面还是被联通劫持着在一个 iframe 里面,导致页面上很多功能无法正常使用,比如点了链接但地址栏里的网址还是不变,很多链接点不开,等等。
那个禁止该 IP 的 JS 执行的办法看着不错,我试试~
可怜啊遇到这样运营商,放纵垄断就是这样
我按照你的思路也做了一个chrome扩展,你也可以看下源代码,看看我们有没有互补的地方。我的邮箱:alex [at] mogove.com,扩展发到了我的blog上:http://alex.mogove.com/ad_killer-for-10010/
谢谢,似乎不错 :)
这个问题现在还是没有解决办法吧… 刚刚又弹出了两次,不过都是在右下角。
没有办法从源头上阻止广告,只能让广告出现时自动刷新页面,刷新页面广告就不见了