| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> Android App抓包、Mock数据探索 -> 正文阅读 |
|
[移动开发]Android App抓包、Mock数据探索 |
一、背景? ? ? ? 客户端在开发过程中,经常遇到以下问题:
二、收益? ? ? ? 客户端在开发过程中,Mock数据的意义:
? ? ? ? 前后端人员定义好接口文档,就可以开始并行工作,互不影响。有利于整个产品质量以及进度的保证。
? ? ? ? 构造的虚拟请求响应,不会造成服务端接口真实数据的污染。
三、方案1. ? 第三方系统? ? ? ? SDK + 管理后台
? ? ? ? 参考玩安卓APP 2. ? APP网络框架拦截? ? ? ? OkHttp / ... ? ? ? ??不足:
3. ? 抓包工具重定向? ? ? ? Charles / Fiddler ?? ? ? ? ?原理:中间人攻击? ? ? ? ? Android 对 HTTPS 的限制,通常来自 2 个方面:Android 系统自身的限制 和 开发者加强了 CA 验证。 ? ? ? ? Android 高版本系统(Android 7.0+)将不信任用户自行安装的 CA 证书,导致验证不通过。 ? ? ? ? 针对这种情况,有如下几种解决方案:
? ? ? ? 针对可自行打包的 Apk,通常会设置内部测试版本和对外发布版本,以不同的打包策略来做隔离。 ? ? ? ? 除了 Android 系统自身的约束外,开发者还会加强 App 的 CA 验证,通常的技术手段有「公钥证书固定」和「双向认证」。 ? ? ? ? 针对公钥证书固定,解决方案有:
? ? ? ? 再就是双向认证,广义上的 HTTPS,通常只做了客户端验证服务端,实际上 HTTPS 是可以做到双向验证的,针对双向验证的 App,可使用 HttpCanary 导入证书,并通过逆向的手段拿到私钥进行破解抓包。
? ? ? ? Wireshark与对应的OSI七层模型: ? ? ? ? Chalers界面友好、跨平台、易破解: ? ? ? ? 1. Map Local ? ? ? ? 将指定的网络请求重定向到Local文件,但是会局限于文本类型的接口 ? ? ? ? 2. Map Remote ? ? ? ? 将指定的网络请求重定向到另一个URL,一般搭配下一节介绍的Mock服务使用 4. ? 搭建Mock服务? ? ? ? PC + Mobile?+ 网络分析工具?+ 服务器
? ? ? ? Map Remote
? ? ? ? mocky.io / 内网搭建Mock服务 ? ? ? ? 伪造Url和数据 ? ? ? ? 配置Map Remote到Url ? ? ? ? 再次请求接口,返回Remote的数据 ? ? ? ? 内网搭建Mock服务的优点:
? ? ? ? ? IP:端口 ?=》 域名 ?5.? ?网络框架拦截 + APP工具? ? ? ? 可视化编辑、跨进程Mock API 参考: Android 高版本 HTTPS 抓包解决方案及问题分析! 天天给 App 抓包,还不懂 HTTP 代理吗? | 实用 HTTP |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 11:42:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |