[原创]从程序员角度分析安徽电信HTTP劫持的无耻行径,以及修改Hosts文件,使用OPENDNS无效情况下的解决方案

标签: 原创 程序员 角度 | 发表时间:2011-02-19 19:07 | 作者:三生石上 han
出处:http://www.cnblogs.com/


问题描述

新年刚过,我就发现使用的安徽电信E9套餐有HTTP劫持的情况(网上有人说DNS劫持,有人说网页劫持),我想大致就是这种情况。

 

重现非常简单,在地址栏输入一些不存在的网址(比如http: //www.dsjkjdsafjklasfewrewre.com/)或者国内无法访问的网址(比如http://www.facebook.com/),就会跳转到电信的广告页面,并且每次的广告页面还不一样,比如有:

 

 

 

这种每次都随机的做法可真是无耻。有时候干脆直接跳转到 3158.cn 或者 淘宝的首页,更是无耻之极。

 

尝试解决问题

在确定不是电脑问题,不是操作系统问题(WindowsXPWindows 7 Mac OS),不是中毒问题,不是浏览器问题(在所有浏览器IEFirefoxSafariChrome…)后,我拨通了10000号进行投诉。

 

安徽电信的工作人员上门查看后也不知道什么原因,在我指出是可能是电信的DNS服务器的问题时,工作人员居然表示不知道这回事,说是要上报上级领导,至今无果。

 

我对这一解释真的很诧异,网上有很多关于这个问题的投诉,并且似乎从几年之前就已经存在,而他们居然不知道,下面我简单列几篇对臭名昭著的IP地址(61.132.221.146)的投诉:

http://www.315ts.net/archive/tousu/2011/0219/1078852.shtml

http://bbs.360.cn/4036159/13707592.html

http://www.tianya.cn/publicforum/content/it/1/565721.shtml

http://www.huangwei.me/blog/2010/02/09/anti-telecom-ad/

……

 

无奈之下,我只好分别在下面各个地方进行了投诉,还在等待反馈:

1.      中国电信在线投诉: http://tousu.ct10000.com/

2.      315消费电子投诉网:http://www.315ts.net/

3.      工信部电信用户申诉平台:http://www.chinatcc.gov.cn:8080/cmsadmin/shouli/shensu.jsp

 

 

从程序员角度看问题

作为一名程序员,在遇到这种问题时,是不能袖手旁观的。我们完全可以从HTTP请求分析出安徽电信在到底在哪个地方做了手脚。

 

这里我使用Filddler来监视所有的HTTP请求响应。

1.打开IE浏览器,在地址栏输入http://www.facebook.com/,这次是跳转到http://61.132.221.146/index_o.html,我们看Filddler的监控面板

 

很明确,这里是在请求facebook.com时,返回的HTTP状态吗是302,也就是URL重定向。我们在写网站时,遇到Session超时时重定向到登录页面也是这样做的。我们来仔细看下这个HTTP请求的响应代码:

 

问题的关键时,facebook.com不会把自己的页面重定向到电信的广告页面。那是谁做的?很明显了,是给我提供ISP服务的安徽电信了,无耻。

 

2. 在地址栏输入不存在的网址,比如http://www.uewkhdshfiueyhfsahd.com /,这次是跳到电信的114广告页面

 

这次不是302跳转了,而是返回的200,一个不存在的网址怎么会正常返回呢,我们来看下返回的内容:

原来这次是通过JavaScript跳转了,无耻。

 

3. 再次在地址栏输入不存在的网址,比如http://www.uewkhdshfiueyhfsahd.com /,这次是跳到2345.com广告页面

 

这次的跳转有点复杂,首先是uwoieurewuorwoerwerwer.com 跳转到 61.191.206.4(这个也是电信的服务器),然后跳转到61.191.206.4:81 /2345-3.html。我们来看下这一过程:

 

 

 

4.      打开一个国外网站dailyjs.com,因为其中通过iframe嵌入了facebook.com的页面,所以这个iframe也被重定向到61.132.221.146这个电信的广告页面。

 

我们通过IEDeveloper Tools来看下这个iframe中有啥东西:

 

facebook.com 居然返回国内的广告页面,我只能说两个字了:无耻!

 

 

5.      最让人受不了的是这种情况,我正常的打开ajaxian.com,整个页面都已经出来了,但是突然整个页面跳转到3158.cn。无耻!!!

我把这次的完整HTTP请求响应都记下来了,因为其中的请求太多,还没来的及分析是怎么跳转了。有兴趣的网友可以下载这个文件,然后用Filddler打开,帮忙分析下怎么跳转的。

 

 

解决方案

我尝试了很多方法都不行,比如修改Hosts,使用GoogleDNS或者OpenDNS。网上对这种方法有详细的描述:

http://www.williamlong.info/archives/1101.html

http://www.cnbeta.com/articles/23851.htm

http://bbs.kafan.cn/thread-180388-1-1.html

http://www.ytbbs.com/thread-1911401-1-1.html

……

 

不过这种方法在我这里都不行,貌似这已经不是简单的DNS劫持了,下面的文章对我的启发很大:

http://www.huangwei.me/blog/2010/02/09/anti-telecom-ad/

http://wenwen.soso.com/z/q253938024.htm

 

综合所有看到的文章,我觉得可以通过如下三种种途径来解决这个问题。

 

1.      将投诉进行到底。

 

2.      使用Firefox插件(BlockSite)和IE的受限站点设置

 

当访问一个不存在的网址时的效果:

 

IE下在“工具”->Internet选项中设置:

 

 

3.      修改本机路由表。

参考如下两个文章:

http://www.huangwei.me/blog/2010/02/09/anti-telecom-ad/

 

步骤:

1.      打开命令行窗口

2.      依次输入如下命令:

route -p add 61.132.221.146 mask 255.255.255.255 192.168.1.33

route -p add 60.169.12.74 mask 255.255.255.255 192.168.1.33

route -p add 61.191.206.4 mask 255.255.255.255 192.168.1.33

3.      route print 查看刚才的命令是否成功。

 

附:安徽电信3个广告页面的IP地址

1.      61.132.221.146

2.      60.169.12.74

3.      61.191.206.4

 

 

强烈建议

如果你也曾遇到这种情况,或者正在经历这个过程,请把你的网络提供商,以及跳转的广告页面地址贴出来,我过段时间会弄一个汇总页面。

 

我会逐步更新这个事情的处理结果。

 

 

 

 

 

 

作者: 三生石上 发表于 2011-02-19 19:07 原文链接

评论: 15 查看评论 发表评论


最新新闻:
· Google Apps Shell Interface 让不会编码的人也能玩 API(2011-02-20 13:26)
· 乔布斯尚有心拆房,杰克林公馆终成废墟(2011-02-20 12:49)
· 三星Galaxy S 4G 23日上市 合约价200美元(2011-02-20 12:44)
· 淘宝进入物流市场:传统企业有危机也有商机(2011-02-20 12:42)
· 新版MacBook Pro或支持Light Peak高速连接(2011-02-20 12:41)

编辑推荐:PM与工程师

网站导航:博客园首页  我的园子  新闻  闪存  小组  博问  知识库

相关 [原创 程序员 角度] 推荐:

[程序员] Web开发入门(原创)

- Xinyu - V2EX
这篇文章最早发在水木web开发和IT业界板,都加精了. 原文在我的博客上,不定期会更新下内容. 顺便说下我创建的喜分分 http://www.xifenfen.com 也公测了,是一个个性化阅读,分享与收藏社区. 我读过的相关书籍发布在豆列(已更新):程序员的自我修养 http://book.douban.com/doulist/1268022/.

[原创]从程序员角度分析安徽电信HTTP劫持的无耻行径,以及修改Hosts文件,使用OPENDNS无效情况下的解决方案

- han - 博客园-首页原创精华区
新年刚过,我就发现使用的安徽电信E9套餐有HTTP劫持的情况(网上有人说DNS劫持,有人说网页劫持),我想大致就是这种情况. 重现非常简单,在地址栏输入一些不存在的网址(比如http: //www.dsjkjdsafjklasfewrewre.com/)或者国内无法访问的网址(比如http://www.facebook.com/),就会跳转到电信的广告页面,并且每次的广告页面还不一样,比如有:.

普通程序员、文艺程序员、2B程序员

- 可可 - 宇宙的心弦
希望能引起广大苦逼的正在学或者已经学过c++人的共鸣和会心一笑吧. 如何辨别自己在现实还是虚拟世界.

如何面试程序员?

- bluesnail - 阮一峰的网络日志
你要面试一个程序员,应该问他什么问题. 有人在Hacker News的讨论区里,请求指点,怎么才能在面试中发现合格的人. 众人纷纷出主意,有很多高质量的回帖,我觉得挺有启发,就整理出了下面这篇文章. 首先,最重要的是,你自己一开始就应该想清楚:. 哪些途径和方法可以发现这样的人. 只有明确这些根本性的问题,才能正确高效地完成面试.

程序员的本质

- Allen - 译言-电脑/网络/数码科技
来源What do programmers really do?.   很多人(包括我岳母)认为计算机变得如此智能,所以在不久的未来将不再需要程序员. 另外一些人认为程序员是天才,他们在电脑前能不断地解决复杂的数学难题. 甚至不少程序员对他们是做什么的都没有清晰的概念.   在这篇文章中,我想给不知情的人解释一下程序员到底是做什么的:.

程序员人生之路

- myartings - 博客园-首页原创精华区
   程序员人生之路(强烈推荐,分析的透彻. ),某程序达人的人生感悟,估计没有半个甲子的时间,是绝对不可能感悟出来的.    相对同时刚出校门同学从事其它行业而言优厚的薪水,以及不断学习更新的专业知识不仅仅让你感到生活的充实,更满足了你那不让外人知的虚荣心. 在刚出校门的几年中,你经常回头看看被你落在后面的同学们,在内心怜悯他们的同时,你也会对自已天天加班的努力工作感到心里平衡:“有付出才会有回报”这句话在那几年中你说的最多,不管是对自已的朋友们还是自已的爱人.

程序员装B指南

- Qing-Run - 博客园-首页原创精华区
1.电脑不一定要配置高,但是双屏是必须的,越大越好,能一个横屏一个竖屏更好. 一个用来查资料,一个用来写代码. 总之要显得信息量很大,效率很高. 2.椅子不一定要舒服,但是一定要可以半躺着. 3.大量的便签,各种的颜色的,用来记录每天要完成的事务,多多益善. 沿着电脑屏幕的边框,尽量贴满,显出有很多事情的样子.

程序员收入报告

- diaoxsh - cnBeta.COM
最近,波兰的程序员Chris(也叫KreCi)公布了他的第十四期程序员收入报告. 数据显示,上月是目前为止他收入最多的一个月. Chris的收入并不是指他的工资或薪水,Chris是一个自由职业者. 他的收入也不是来自个人承包软件工程的收入,他更像是一个果农,种了优良的果树,只要不断的给这些果树施肥浇水,这些果树会给他带来源源不断的财富.

程序员的利器-SourceInsight

- Alex - 博客园-首页原创精华区
作为程序员,大部分时间是在已有的代码上代码工作. 要对已有的代码进行调整,首先就要搞清楚当前代码中蕴含的逻辑关系. 所以常常有程序员调侃说花了大半天时间看代码,最后写代码的时间只有几分钟. 所以,对已有代码的分析质量将影响(甚至会决定)最终代码修改的质量. SourceInsight在代码分析上给予程序员极大的帮助.