防治运营商HTTP劫持的终极技术手段

原创 2017年09月05日 11:28:04
运营商HTTP劫持(非DNS劫持)推送广告的情况相信大家并不陌生,解决的方法大多也是投诉增值业务部门进而投诉工信部。但这种方法费时费力,投诉接听人员并不了解情况导致答非所问的情况有很多,有时候不但受气最终也没能完全解决问题,或者解决问题后过了一段时间复发的情况并不少见。


  近年来,运营商HTTP劫持非但没有收敛,反而变本加厉,玩出了新花样:比如通过HTTP劫持进行密码截获的活动;比如下载软件被替换的情况;比如劫持进行返利(当然返利不是返给你)的情况。


  本文介绍一种技术手段用来防止HTTP劫持,在大多数情况下不但可以解决广告推送的问题,也能解决密码截获和下载软件被替换的情况。最终的效果是运营商停止了HTTP劫持,而非劫持后通过浏览器插件进行广告过滤。此种方法的好处是既不用安装浏览器插件进行广告过滤,也不用额外的服务器(HTTP代理或VPN之类的),并且能防止下载软件被替换和返利劫持,也能在一定程度上防范密码的泄漏。


防治运营商HTTP劫持的终极技术手段

我的博客:CODE大全www.codedq.net业余草www.xttblog.com爱分享www.ndislwf.comifxvn.com
  要说明这种技术手段的工作原理,首先需要说明大多数情况下运营商HTTP劫持的原理:


  在用户的浏览器连上被访问的网站服务器,发送了HTTP请求后,运营商的路由器会首先收到此次HTTP请求,之后运营商路由器的旁路设备标记此TCP连接为HTTP协议,之后可以抢在网站服务器返回数据之前发送HTTP协议的302代码进行下载软件的劫持,浏览器收到302代码后就会跳转到错误的软件下载地址下载软件了,随后网站服务器的真正数据到达后反而会被丢弃。或者,旁路设备在标记此TCP连接为HTTP协议后,直接返回修改后的HTML代码,导致浏览器中被插入了运营商的广告,随后网站服务器的真正数据到达后最终也是被丢弃。


  从上述原理中看出,如果需要进行HTTP劫持,首先需要进行标记:如果是HTTP协议,那么进行劫持,否则不进行劫持。那么,是否有一种方法,既可以避免被旁路设备标记为HTTP协议,而目标网站收到的仍旧是原来的HTTP请求,并且不需要任何第三方服务器呢?答案是有的:
我的博客:CODE大全www.codedq.net业余草www.xttblog.com爱分享www.ndislwf.comifxvn.com

  旁路设备中检测HTTP协议的模块通常比较简单,一般只会检测TCP连接建立后的第一个数据包,如果其是一个完整的HTTP协议才会被标记;如果并非是一个完整的HTTP协议,由于无法得到足够多的劫持信息,所以并不会被标记为HTTP协议(我们伟大的防火墙并非如此,会检查后续数据包,所以这种方法无效)。了解了这种情况后,防止劫持的方法就比较简单了:将HTTP请求分拆到多个数据包内,进而骗过运营商,防止了HTTP劫持。而目标网站的操作系统的TCP/IP协议栈比较完善,收到的仍旧是完整的HTTP请求,所以也不会影响网页浏览。


  那么如何将浏览器发出的HTTP请求拆分到多个数据包中呢?我们可以在本地架设一个代理服务器,在代理服务器将浏览器的HTTP请求进行拆包,浏览器设置本地的代理服务器即可。我这里经过测试,默认设置的情况下对三大运营商(电信、联通、移动)的HTTP劫持现象都有很好的抑制作用。


  这个软件是个开源软件,代码在: https://github.com/lehui99/ahjs5s 。如果发现有什么问题,欢迎在Github上提Issue。如果有更新,我也会第一时间更新到Github上。

我的博客:CODE大全www.codedq.net业余草www.xttblog.com爱分享www.ndislwf.comifxvn.com

版权声明:本文为博主原创文章,未经博主允许不得转载。

防治运营商HTTP劫持的终极技术手段

运营商HTTP劫持(非DNS劫持)推送广告的情况相信大家并不陌生,解决的方法大多也是投诉增值业务部门进而投诉工信部。但这种方法费时费力,投诉接听人员并不了解情况导致答非所问的情况有很多,有时候不但受气...
  • wangzhjj
  • wangzhjj
  • 2016年09月25日 13:08
  • 2888

面对电信运营商HTTP劫持如何是好,投诉太折腾,不如路由器直接屏蔽广告源

最近发现不管电脑还是手机访问 www。jd。com 或一号店苏宁国美之类购物网站都会被劫持到 p.yiqifa.com/xxx网址,然后返回带推广参数的京东等电商网址,如上图,各位搞网站的朋友一眼就能...
  • d80000
  • d80000
  • 2015年11月01日 20:13
  • 4993

劫持网络--运营商投放广告

居住在大深圳的关外几年,换了几家宽带运营商,对于运营商的DNS拦截投放广告已经无力吐槽了,在度娘上搜索任意东西他们时刻会提醒我,尤其是是惯了下淘宝或京东。作为一个小小的程序员,实在忍不住想看下究竟,也...
  • szzt_lingpeng
  • szzt_lingpeng
  • 2016年06月30日 22:03
  • 2709

运营商流量劫持

最近了解了一下运营商流量劫持,文章很多,但感觉很零碎,在这里把众多文章内容串一下,清晰一下思路。下面多是引用,引文在附录里,就不一一标识了。对于传统的流量劫持请见引文1,这里不作介绍。 运营商流...
  • sicceer
  • sicceer
  • 2016年08月05日 10:16
  • 2995

如何防止运营商网络劫持,避免被他人强行插入广告?

主要的网络劫持形式: 近年来流量劫持(运营商网络劫持)频频发生,各种方式也是层出不穷,易维信-EVTrust总结各种网络劫持现象和其带来的危害 1、域名劫持,用户想要访问网站A,域名却被解析到其它...
  • cio_liuguilan
  • cio_liuguilan
  • 2016年05月09日 09:22
  • 7620

运营商劫持ajax请求

国内的网络经常会遇到被运营商劫持网络的这种情况,今天终天找一种解决办法,什么原理不明白,如果有哪位大神知道,还希望能告知一下。代码...
  • u010308173
  • u010308173
  • 2016年06月30日 16:15
  • 267

Android WebView消除运营商小球脚本

主要是设置setWebViewClient ,在onPageFinished 方法里 通过js, 拿到dom元素然后擦除。。可能更好的方法是使用https,防止拦截吧 mWebView.s...
  • zhangle1hao
  • zhangle1hao
  • 2017年02月28日 10:15
  • 318

记一次奇葩的Js劫持事件

最近,项目突发状况,之前开发的一个手机端APP内嵌H5页面突然异常。现象是刷新页面后,有很大概率页面卡死在数据加载阶段。于是联系App开发人员,出调试包。开始调试。 开始调试后,首先发现页面加载时发送...
  • zjkyz8
  • zjkyz8
  • 2016年04月09日 07:03
  • 5272

HTML5页面被运营商进行DNS劫持问题及解决方案,app中h5页面源码的获取

App应用的html5页面经过运营商的移动网络(非wifi网络),被强制插入广告和手机管家的多余信息,在有些场景严重干扰用户的操作,也产生在美丽的页面上加入了不协调的悬浮层。并且这个手机管家类的悬浮层...
  • jia12216
  • jia12216
  • 2016年10月28日 17:31
  • 10574

移动运营商劫持注入用户流量显示代码

很多做移动web开发的同学应该都遇到一个很蛋疼的问题,自己的页面被中国移动注入了一些显示用户流量的代码。 效果如图: 通过浏览器调试发现,这玩意儿居然总共快接近 1兆,加载需要近30秒!难怪我的页...
  • ZhengJiepeng
  • ZhengJiepeng
  • 2016年08月08日 15:18
  • 485
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:防治运营商HTTP劫持的终极技术手段
举报原因:
原因补充:

(最多只允许输入30个字)