下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922
论坛 >移动开发 >移动开发构架漫谈——反劫持实战篇

移动开发构架漫谈——反劫持实战篇

一路风景都看透发布于 2015-08-12 10:35查看:554回复:3

什么是 http劫持,DNS劫持为何物?

HTTP 劫持是在使用者与其目的网络服务所建立的专用数据通道中,监视特定数据信息,提示当满足设定的条件时,就会在正常的数据流中插入精心设计的网络数据报文,目的是让用户端程序解释“错误”的数据,并以弹出新窗口的形式在使用者界面展示宣传性广告或者直接显示某网站的内容。

DNS 劫持又称域名劫持,是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则返回假的 IP 地址或者什么都不做使请求失去响应,其效果就是对特定的网络不能反应或访问的是假网址。

实例 1

优酷客户端页面上方的小广告,并不是优酷所添加的,但是却出现在优酷应用中

1439346831236390.jpg

 

实例 2

传统浏览网页经常会弹出很多弹窗广告,现在这种情况也移植到移动互联网上。经常会弹跳出不堪入目的内容,甚至利用更加恶劣的方式弹跳广告内容。

blob.png

实例 3

这是汽车之家的一个页面,最后在客户产生劫持的情况下,直接替换成了另外一个页面。

blob.png

产生的原因

①广告插码

发布“流氓广告”的厂商以推销他们的产品形式,将广告投放到各个应用中。

②中小运营商节省流量成本,使用缓存技术,制造一个网速“飞快”的假象

一些中小运营商或者宽带运营商,为了节省流量成本,建立很多类似于缓存技术,多是做假象,直接在内部做一个缓存。

③恶意攻击

竞争对手的攻击,都是属于劫持类的。应用被非法广告植入,数据被非法缓存,被恶意攻击,已成为一种危害。

怎么劫持的呢?

劫持主要是:向客户端发起一个请求向DNS服务器,然后去请求我们的IP。这有三个因素,第一来自网络运营商的机房,这时候有一些漏洞,可能会被内部一些人员或者是一些牟利的机构加以利用。对请求的数据还有来源进行一些篡改。第二,常见的就是“三大运营商”经常做一些推广,向应用接口直接发一些他们的推广信息。他们会直接去劫持拦截你的数据,返回运营商,提示你充值一些数据。

blob.png

造成的危害

①应用数据无法更新
②非法跳转,导致页面数据无法展示
③弹出广告影响视觉
④内嵌非法内容影响 APP 产品形象

反劫持实战

①数据合法性校验

合法性管理校验是唯一评判这个数据是否有效的一个手段。他包括两个内容,一个是数据是否完整,还有一个数据的时效性。

合法性的判断来说我们还是惯用的,会去用一个内容生成一个校验串,进行一个验证。如果校验串不匹配,会判定为数据是非法的,被篡改的。

②数据时效性校验

时效性的判断,我们会在数据内容有一个约定,证明数据产生的时间点,客户端有一个校验保证。针对应用里边的页面内容,会对页面的内容以及跳转地址会进行一个黑白名单的匹配,这样来去判别这些数据是否是合法的时效性保证的。

解决方案

①域名劫持

首先针对域名劫持来说,如果是DNS劫持,根据它的原理DNS是指向被篡改的IP,需要打破通用的DNS获取的方式。所以使用一种Http DNS的技术。这个技术简单来说就是使用Http的方式,将以往的传统的DNS协议替换为Http包装的域名解析的一个IP地址的集合。如果是针对Http链路层的解释,数据篡改的内容,直接对链接进行修改的重试,可以让错误的请求有机会通过我们加设的反向代理机制,帮助他在获取正确的数据。

【HttpDNS的原理】

首先这是一个终端用户,他以前获取目标服务器的方式直接提供域名,访问目标服务器。现在如果他根据之前的图示,他走传统的DNS解析服务器方式的话,如果遭受DNS解析,他可能指向错误的服务器。这个HttpDNS方式就是打破传统的DNS解析的路径,将DNS通过一个HttpDNS服务器的方式去帮他去从真正的DNS服务器,把目标IP方式返回到最终用户。用户再根据返回的真正的IP地址去返回目标服务器。通过这个方式去对DNS劫持方式进行一个有效的访问率的反制。有时候他返回的IP可能不止一个,客户端拿到IP以后,在客户端来说是注意加速请求的响应,客户端有对被审的IP进行一个测速。每次会根据一个失效周期会阶段性的对这个IP进行速度的测速,实时转换。这样保证我们提供的IP是最快速,能够让用户这些请求快速的达到正确的。 

blob.png

 

收藏(0)0
查看评分情况

全部评分

此主贴暂时没有点赞评分

总计:0

回复分享

共有3条评论

  • 慧星的那一夜
  • MK
  • 药师
  • IT宅男
  • mr jack
  • YUI
  • Mr ken
  • cappuccino
  • 课课家技术团队1
  • 选择版块:

  • 标题:

  • 内容

  • 验证码:

  • 标题:

  • 内容

  • 选择版块:

移动帖子x

移动到: