简介
在日常的移动端安全审计,自动化审计一直停留在应用客户端,对于安卓应用中的网络API接口长期处于空白阶段,该方案主要想解决实际工作中移动安审自动化覆盖范围不全遗漏掉API相关内容的问题,同时对公司APP端的资产进行梳理,进一步完善公司移动应用SDL流程缺失的环节。
安卓通信框架
对于安卓应用,有以下几种较常见的http通信方式,Apache的HttpClient类、Java提供的HttpsURLConnection类、Android提供的WebView以及第三方库比如OkHttp、Retrofit2。
其中HttpClinet在安卓6.0的时候就已经被废弃,安卓官方推荐使用HttpsURLConnection,但OkHttp和Retrofit2使用起来更方便、功能更多,所以大部分应用都采用OkHttp来实现网络通信。
okhttp
okhttp 是一套处理 HTTP 网络请求的依赖库,由 Square 公司设计研发并开源,目前可以在 Java 和 Kotlin 中使用。对于 Android App 来说,OkHttp 现在几乎已经占据了所有的网络请求操作,RetroFit + OkHttp 实现网络请求似乎成了一种标配。因此它也是每一个 Android 开发工程师的必备技能,了解其内部实现原理可以更好地进行功能扩展、封装以及优化。
okhttp拦截器
- BridgeInterceptor:主要对 Request 中的 Head 设置默认值,比如 Content-Type、Keep-Alive、Cookie 等。
- CacheInterceptor:负责 HTTP 请求的缓存处理。
- ConnectInterceptor:负责建立与服务器地址之间的连接,也就是 TCP