2019独角兽企业重金招聘Python工程师标准>>>

自从住进了租房以来,在使用租房的宽带的时候总有个问题,已经几个月了,今天我实在无法忍受这些广告了。决定要整治这些劫持广告。
一开始想到用socks5代理,需要自己租服务器,而且很麻烦,而且我研究了下劫持的页面,并且从网上也发现了一些其它用户遇到的问题。
这里有一个链接:
http://bbs.kafan.cn/thread-1856999-1-1.html
上面这个链接详细描述了劫持的毒害。。。。

我主要遇到下面几个类型的劫持:
类型一:输入百度的时候,后面会自动被加上尾巴然后进行跳转。尤其是输入www.hao123.com的时候,会跳转到http://www.hao123.com/?tn=94150859_hao_pg

但是如果你使用https://www.baidu.com是没法跳转的,建议大家修改自己的chrome的浏览器的默认搜索引擎,加上https,还好百度开启了https,这时候我深感推广https的重要性。没有https的话,这些运营商想怎么改你的网页就怎么修改。

类型二:就是常见的右下角广告了,这个还好解决,装上adblock plus就可以一劳永逸了。

但是真正让我苦恼的是下面的类型三:

类型三:手机访问网页的时候,运营商会根据你的UA来植入广告,这个广告是和pc上浏览器的是不同的。
这个广告是类似于我们玩手游的时候,在网页中间插入一个广告悬浮窗达到目的。。。这移动端的广告还真是与时俱进啊

下面自己感受一下这个广告,我有强迫症的简直无法忍受。

点开右侧那个悬浮广告,就会出现下面这个了:

再看一下下面的声明,多么无耻,没有下限啊。。。

还无毒,你知不知道你造成了骚扰啊。
这个玩意的毒害真的太大了。
主要是使用了WebView的app,app在用webview加载网页的时候,此广告都会识别浏览器中携带的ua信息,自动植入。。。
我看的今日头条app在我租房的wifi下基本无法使用,今日头条很多h5的页面,被强行修改了页面内容。无法浏览。
同时查看微信公众号的东西,中间同样出现悬浮窗,我不理解为什么微信不尽早使用https。

后面我开始想办法解决这个毒瘤了。
既然你是通过ua识别的,首先我通过chrome的device mode,设置为nexus7设备访问,刷新几次页面之后,如愿所偿的出现了广告。
于是我修改ua(chrome在device 模式下的ua是可以修改的),将ua修改为f u c k。

果然没有移动广告了,但是右下角广告就出现了。。。
好吧我不修改ua,在ua后面加入足够多的乱码。经过一番测试,加到500多个没用字符之后,不再出现广告了。

个人理解为:这个劫持商要劫持那么多用户,肯定对http header的长度有所限制,超出这个限制之后,它就不会再劫持了,否则他自己的服务器压力也很大的。

到此,这个方案已经有效了,接下来是怎么运用到android平台上。
这时候需要用到一个android上的神器框架xposed。不了解的读者可以自行百度一下。

思路:使用xposed框架hook webView控件的loadUrl,在loadUrl之前将webView的ua修改为足够长。
我的xposed代码很简单,几行就解决了这个劫持问题了。

public static final String ua="Mozilla/5.0 (Linux; Android 4.3; Nexus 7 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2307.2 Safari/537.360123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199";@Overridepublic void handleLoadPackage(LoadPackageParam lpparam) throws Throwable {// TODO Auto-generated method stubXposedHelpers.findAndHookMethod("android.webkit.WebView", lpparam.classLoader, "loadUrl", String.class,new XC_MethodHook() {@Overrideprotected void beforeHookedMethod(MethodHookParam param)throws Throwable {// TODO Auto-generated method stubObject thisObj=param.thisObject;if(thisObj instanceof WebView){((WebView) thisObj).getSettings().setUserAgentString(ua);}}});}

上面的ua,是找到一个移动端适用的ua,然后后面加上500多个没用字符。移动端ua是一定要的,我发现如果我没用移动端ua的话,有些app是会拒绝加载的,因为他们需要ua里面的Android这个关键字。

转载于:https://my.oschina.net/zxcholmes/blog/596192

教你怎么屏蔽掉在移动端的宽带运营商的流量劫持,屏蔽无耻的广告相关推荐

  1. 屏蔽宽带运营商的弹窗广告

    最近在公司打开一些网站,发现浏览器右下角弹出一个广告,我吓了一跳,难道我的网站被人黑了. 于是我在广告图片上点右键--审查元素,跳到了广告代码的地方,代码如下: <div οnclick=&qu ...

  2. 【重大突破】——移动端——如何手机端屏蔽掉网站,【小技巧】戒应用AppDetox,一个可以屏蔽管理APP的自律软件,马克保存

    手机是现代生活每个人都无法摆脱的工具,可是如果管理不当,就会在手机上浪费太多时间,有时候工作忙,就不看手机了,但是闲暇时间,我们还是会不停的翻抖音,快手,小视频,微信,而我个人认为,如果我能管理好我的 ...

  3. 移动端——如何手机端屏蔽掉网站~随着移动端的日常时间普遍增长,我们应该怎样更好的自制自律,解决方案,通过第三方软件-设置域名黑名单来屏蔽网站

    手机端屏蔽 如何手机端屏蔽掉网站 博主特别喜欢翻手机,玩手机,尤其是对篮球,NBA等体育运动上瘾,发现脑海里总是想这种东西,然后天天手机看这方面的资讯,论坛,发现万事万物执着到一定程度,专注下,有一定 ...

  4. PC端——如何屏蔽掉某网站-极度简洁-继hosts后的全新改良版~!

    博主特酷爱体育,特别喜欢打篮球,以及浏览篮球方面的事情,但是发现为了更好的努力,以及更好的盈利,体验世界上更好的新事物,就想决定屏蔽掉一切和篮球,体育有关的主流网页. 四处查找方法 最多的,就是hos ...

  5. 大话西游维护完怎么刷服务器,大话西游2很实用:看高玩教你如何快速刷齐高端套装...

    大话西游2很实用:看高玩教你如何快速刷齐高端套装 先贴几张套装截图,免得有人说我吹牛,视图如下: 洞天套装 本人来自天界--花样年华,现在合区到在爱一次了,去年9月5号开的区,半年不到的时间各种套装毕 ...

  6. 以下代码可以屏蔽掉alt+f4

    以下代码可以屏蔽掉alt+f4: void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam) {  if(nID==SC_CLOSE&& ...

  7. 最积极的搜索引擎蜘蛛有哪些可以屏蔽掉

    最积极的搜索引擎蜘蛛有哪些可以屏蔽掉 大家都知道搜索引擎蜘蛛的数量越多越好,爬的页面也越多越好,不爬就不会在收录存在了.那么,最积极的搜索引擎蜘蛛有哪些呢?垃圾蜘蛛真的是爬遍全网,步极网提醒赶快屏蔽掉 ...

  8. 如何屏蔽掉某网址不能访问

    电脑上如何屏蔽掉某网址: 好处:屏蔽掉该网址后,浏览器就不能访问该网址了 具体过程: 打开 C:\Windows\System32\drivers\etc 文件夹,etc文件夹下有一个hosts文件, ...

  9. 百度搜索屏蔽掉右侧的推荐

    在使用百度搜索的过程中,右侧栏会出现一些不想要的结果: 我想把这些无用的东西都屏蔽掉,让页面清爽一些. 于是我编写了javascript脚本来实现: if (location.hostname==&q ...

最新文章

  1. 熬夜的朋友注意了﹕看看器官的工作時間
  2. css不换行属性_那些不常见,但却非常实用的 css 属性
  3. 关于JQUERY动态加载页面时的JS失效的问题
  4. 如何利用pycharm实现本地代码和远程的实时同步
  5. Python 爬虫是什么
  6. 调用另外一个文件_从零开始学Python-Day52-文件读写
  7. 华为服务器如何开机自动启动不了,华为手机开不了机停在开机画面怎么办【详解】...
  8. PS替换图片图标操作
  9. 问题二十九:测试ray tracing中camera几个主要参数
  10. Linux汇编调试器EDB
  11. 算法设计与分析基础 第八章谜题
  12. MyEclipse8.5添加tomcat7
  13. 中期答辩记录与总结反思
  14. 大型粒子对撞机已被上面叫停了!何祚庥:希望杨振宁李政道有生之年重归于好...
  15. Vim插件管理:Pathogen安装
  16. Hackintosh Dell vostro 5460 alpha v1.0 版本
  17. (小米系统系列三)刷机成功后卡在开机引导页,将电脑设置成热点,给手机提供验证网络的方法
  18. 协同过滤推荐算法及应用
  19. Layui+ssm修改
  20. 从C程序到bin文件

热门文章

  1. DateUtils常用方法
  2. hadoop的运行机制
  3. dealloc时取weakself引起崩溃
  4. SpringMVC 基于注解的Controller详解
  5. 软件测试职业发展之路的反思(转)
  6. QML基础——在C++程序中使用QML
  7. 《计算机网络》谢希仁第五版考试重点整理
  8. 驱动开发基础知识 偶然发现的,很全面
  9. c语言中函数调用的原理
  10. Fragment向ChildFragment传值