判断当前系统是否挂代理

获取当前系统是否设置代理,可以根据不同的 Api Level,分别通过 System.getProperty() 和 android.net.proxy.getXxx() 方法获取到。

    private fun checkWifiProxy(): Boolean {val IS_ICS_OR_LATER = Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICHval proxyAddress: String?val proxyPort: Int?if (IS_ICS_OR_LATER) {proxyAddress = System.getProperty("http.proxyHost")val portStr = System.getProperty("http.proxyPort")proxyPort = Integer.parseInt(portStr ?: "-1")} else {proxyAddress = android.net.Proxy.getHost(this)proxyPort = android.net.Proxy.getPort(this)}Log.i("cxmyDev","proxyAddress : ${proxyAddress}, prot : ${proxyPort}")return !TextUtils.isEmpty(proxyAddress) && proxyPort != -1}

通过 Log,就可以看到当前设备,在 WiFi 中,挂的代理的 IP 和 Port 了。

拒绝发请求的缺点

若判断当前环境,被挂了代理就拒绝请求,其实是一个非常不友好的操作。

首先你需要有效的提醒用户,去正确的设置 WiFi 的代理;其次,总有一些特殊的情况,用户需要在手机上挂代理,可能不是针对你的 App,总不能让你的 App 和当前代理在用户眼里“不兼容”吧!

设置不使用代理

Fiddler 和 Charles 这类抓包工具,本质上就是利用中间人攻击的方式,通过这个中间人获取到通信的数据。

而利用这些工具抓包的前提,都是在设备上,设置代理,通常我们直接在 WiFi 连接页面,设置代理即可。

而对于一些常用的网络库,其实是提供了我们设置的代理的接口,我们只需要将其设置成无代理的模式,它就不会去应用系统默认的代理了。

就拿比较常用的 OkHttp 来举例,在初始化的时候,就可以通过proxy() 方法,为 OkHttp 设置一个代理。

var httpBuilder = OkHttpClient.Builder().addInterceptor(defaultInterceptor()).connectTimeout(DEFAULT_TIMEOUT, TimeUnit.MILLISECONDS).writeTimeout(DEFAULT_TIMEOUT, TimeUnit.MILLISECONDS).readTimeout(DEFAULT_TIMEOUT, TimeUnit.MILLISECONDS).proxy(Proxy.NO_PROXY)

例如这里,我们对其设置为不使用代理的模式,它就不会从系统中,读取代理信息,进行网络请求。而是会忽略掉它,直接发送网络请求。以这样的方式,就可以阻止第三方使用 Fiddler 或 Charles 进行抓包。

对于防止抓包,你还有什么新奇的思路,不妨在留言区讨论~

最后

如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。

最后针对Android程序员,除了上面的知识体系,我这边给大家整理了一些资料,其中分享内容包括不限于高级UI、性能优化、移动架构师、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter等全方面的Android进阶实践技术;希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!欢迎关注一起交流!

漫画:App 防止 Fiddler 抓包小技巧!相关推荐

  1. App测试---Fiddler抓包工具手机添加代理后连不上网解决办法

    在App测试中遇到的问题:Fiddler抓包工具手机添加代理后连不上网 背景:需要测试接口返回值是否ok.因此使用Fiddler工具进行抓包,查看网络请求的返回值.安装Fiddler工具后,在进行Fi ...

  2. 用fiddler抓包小程序

    第一步:安装fiddler,保证手机和PC端在同一个wifi下: 第二步:设置属性 按图勾选 第三步:以上两步设置完后,重启下fiddler(解决本地服务器不能访问),然后查看本地IP地址 第四步:手 ...

  3. 夜神模拟器+Fiddler抓包测试App

    前言 最近公司要求前端小姐姐开始用uniapp做App了,后端这边接口安全是用的security(历史原因),讲真我不太喜欢用这个,好多年没有用这个了.今天主要是跟大家分享下用模拟器测试app + F ...

  4. php禁止fidd抓包,PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析

    本文实例讲述了PHP配合fiddler抓包抓取微信指数小程序数据的实现方法.分享给大家供大家参考,具体如下: 这两天研究了下微信指数这个东西.要抓取呢,按照一般思路的话,那就是使用fiddler抓取手 ...

  5. php抓包设置参数_PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析

    搜索热词 本文实例讲述了PHP配合fiddler抓包抓取微信指数小程序数据的实现方法.分享给大家供大家参考,具体如下: 这两天研究了下微信指数这个东西.要抓取呢,按照一般思路的话,那就是使用fiddl ...

  6. 非常【刑】又可【拷】的fiddler抓包实战 涵盖使用教程/下载安装/抓取手机app

    Fiddler是一款非常强大的网络抓包工具,可以帮助我们分析HTTP/HTTPS协议的流量,从而深入了解网站的运行机制,发现安全风险和性能问题.下面是Fiddler工具的基础使用方法. 视频教程:非常 ...

  7. fiddler抓包小红书app(简易版)

    官网下载夜神模拟器最新版本,选择安卓5,启动后下载小红书app 官网下载fiddler抓包工具,配置好后并安装证书并修改权限 安装xposed框架和just-trust-me组件.mt管理器(安装证书 ...

  8. 如何使用Fiddler抓包某奇艺小程序视频下载

    [跟着新手学FD第03套]003如何使用Fiddler抓包爱奇艺小程序视频下载 Hello 大家好 我是你们的老朋友,小白 我是本套课程的讲师 小程序名字:某奇艺视频 本节课的内容:实战抓取视频之抓取 ...

  9. fiddler抓包后APP无法访问的解决

    fiddler抓包后APP无法访问的解决 问题原因 如何解决 手机抓包的具体操作 问题原因 如果开启fiddler抓包后,部分APP正常解密HTTPS,部分APP不行(比较典型的是应用商店,淘宝,知乎 ...

最新文章

  1. 2022-2028年中国自热米饭市场竞争策略及行业投资潜力预测报告
  2. RHlinux下安装VORACLE VM VIRTUAL BOX
  3. Node.js-提供了四种形式的定时器
  4. openFeign 服务接口的调用02—— openFeign 的使用步骤
  5. 对于dts的理解和分析
  6. VTK:RenderMan之PolyDataRIB
  7. Nodejs【单机】多进程模式集群
  8. 姑娘,你为什么要编程?
  9. get clone 出现 fatal: the remote end hung up unexpectedly5 MiB | 892.00 KiB/s 报错信息
  10. pc显示器分辨率 前端_明基透露索尼PS5可提供1440p分辨率选项
  11. PUSHA/POPA
  12. java limit_Java 8 Stream:limit()和skip()之间的区别
  13. iOS navigationBar导航栏底部与self.view的分界线的隐藏
  14. c语言实现循环队列初始化从键盘输入,2017年12月计算机二级考试C语言考前提分卷(2)...
  15. 基于Springboot实现汽车4S店销售管理系统
  16. 用java怎么做微信公众号,用Java搭建微信公众号(一)构建基础请求框架
  17. 图卷积神经网络代码讲解,卷积神经网络python实例
  18. 中国手机企业库存高达6000万,市场正常后或大规模降价促销
  19. SBUF数据缓冲寄存器
  20. ML-Diary02

热门文章

  1. Unity关于程序集(Assembly )的那些事
  2. imx6 linux can测试,iTOP-iMX6UL开发板-MiniLinux-CAN测试使用文档
  3. APP上架到各大应用商店指南
  4. xss绕过字符过滤_xss绕过过滤之方法
  5. 微信语音聊天内容如何录制 如何录制通话内容
  6. JAVA代码托管平台_推荐几个常用的代码托管平台
  7. PySide2学习总结(三)QtWidgets和QML
  8. 去面试却被问的哑口无言,是不是踏入了机器学习误区
  9. Mac软件下载站推荐,让你告别软件荒!
  10. 还在为不知道怎么学习网络安全而烦恼吗?这篇文带你从入门级开始学习网络安全—认识网络安全