Android H5页出现广告分析和解决方案

H5工作背景

最新在做公司的项目,因为是定制化地图开发,需求不断变更,并且会在多种场景使用(Web,Android,IOS),需求和成本问题,H5更加适合这3端的页面嵌入,开发成本较低,需求变动大的情况下,项目也不会烂掉。

H5初析和认识

H5全称是Html5,这是不是一项技术,而是一个标准,Html5就是Html的第5个版本,哈哈哈,具体的可以自己百度,以下HTML5我简称为H5。为什么一开始说成本低呢,因为H5是web网页开发,项目需求变更后的应用页,访问web地址不变,Android,IOS端便会自动更新(当然也有缓存存在的情况,清理缓存后就会是最新的,当然也可以控制不使用缓存,看自己项目需求)。BS架构有BS架构的优势,Android/IOS里嵌入的H5页,就是一个BS架构的页面,因为他得运行机制就类似浏览器打开页面一般。H5相比原生APP,更加灵活的变动,页面功能变更不需要发布新版本包,上线应用商店,作为用户是不是很苦恼软件更新的苦恼,大家都会懒一点。。。Android和IOS原生开发都是客户端开发,作为我更喜欢原生开发(因为自己是java开发出身,h5页基本和Android很少关系,其实就是前端。。),结尾再聊一下。扯了下BS和CS,要是还不懂的小伙伴可以在书本和百度中查查学习一下。

出现的问题

一个刚做完3个月的APP项目,我认为我解决了整个APP的所有BUG,毕竟维护了2个月,代码不断的排查。除了用户提出了1-2,2-1的无赖需求,我都满足并解决了。可今天用户却向产品反映,在使用我做的APP后,底部H5页出现了抽奖广告,这让我第一反应就是网页被劫持了,因为之前自己手机XX浏览器里也出现了,当时就怀疑这东西的真实性,这会又出来闹了。用户体验很不好,反应到我的时候已经怀疑我们公司的技术实力和安全性了,毕竟是政府部门,安全表面语言说的很重要。那只能认真排查原因,杜绝现象的再次发生。

分析问题

当时收到产品第一时间反馈后,我们第一时间看到了似曾相识,第二时间猜测了以下可能性:

1.DNS劫持 。
2.HTTP劫持 。
3.第三方jar包植入广告。

如果这个广告的问题会用户的每个手机都会出现,我的测试机也会出现,那样最好,我可以调试找出问题所在,可问题是,只有一个客户机出现了问题。那我有了下一步的猜想,客户用的是3G/4G/WIFI哪一个,才出现广告植入的问题。经过一系列的测试,3G/4G/WIFI都出现了 2.出现的位置都是H5页面,Android/Ios都会出现。

问题排查

我们项目中使用的第三方jar包只有百度地图和极光推送,我宁可相信他没有做捆绑,毕竟就算捆绑,那你也没办法,谁让是免费的呢。

那基本可以定位是网络劫持(DNS/HTTP劫持)

1.什么是DNS劫持:

首先DNS是什么。DNS是在作为域名(www.baidu.com)和IP地址(192.168.1.1)相互映射的一个分布式数据库,就是我们的浏览器,会将域名拿到DNS去解析出ip地址来访问,DNS劫持是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则返回假的IP地址或者什么都不做使请求失去响应,其效果就是对特定的网络不能反应或访问的是假网址。
通俗讲,DNS帮我们指向了另一个地址,或者让我无法访问。典型的DNS劫持百度一下吧。。。

2.什么是HTTP劫持:

HTTP劫持是在使用者与其目的网络服务所建立的专用数据通道中,监视特定数据信息,提示当满足设定的条件时,就会在正常的数据流中插入精心设计的网络数据报文,目的是让用户端程序解释“错误”的数据,并以弹出新窗口的形式在使用者界面展示宣传性广告或者直接显示某网站的内容。
通俗讲,你要去别人家的首页,他会给你别人家的首页,但却在别人家首页某个部位加个小广告,还可以控制关掉。。 让人无奈。现在很多免费WIFI植入广告的手段,为了博取更多点击量。
进过分析,我们遇到的是第二种情况。

解决方案

使用HTTPS。HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版。就是说数据交流是加密的那么所谓的在返回数据里面加点广告就无从谈起了。而且HTTPS也能解决DNS劫持。而https的成本并不高。
其实埋的坑就是某政府的项目给我们的服务器是ip地址,外网访问,这不明摆着给别人劫持么。。

再谈谈H5和原生

原生Android很棒,我作为原生Android2年开发经验的一个小白,基本熟悉了Android原生开发的基本使用,为什么原生Android的基础上会有H5-Android开发呢,当你体验到项目因为客户的需求小变更而2周打包10个版本的时候你就明白了。我一开始也是对H5抗拒的,并且面试公司时都会问你们做什么类型的APP。但我现在看的有些透彻,H5有它的优势和给力之处,也有性能用户体验的不好之处(这是我一大不愿意做H5-Android开发的原因)。原生+H5配合更加融洽。这样既控制了成本,也控制了APP的性能体验,根据需求,在更适合的时候选择更适合的技术去解决项目需求问题,这样才是最棒的。
积少成多,全靠自觉~
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值