很多时候我们开发项目的时候,都需要抓包,很多情况下即使是 Https
也能正常抓包正常。那么问题来了:
- 抓包的原理是?
- 任何
Https
的app
都能抓的到吗? - 如果不能,哪些情况下可以抓取,哪些情况下抓取不到?
1.抓包的原理:
代理。
-
客户端请求
->经过代理
->到达服务端
-
服务端返回
->经过代理
->到达客户端
2.任何 Https 的 app 都能抓的到吗?
7.0
以下是可以的,只要手机里安装对应 CA
证书,比如用 charles
抓包,手机要安装 charles
提供的证书就行。
Android 7.0 之后,Google 推出更加严格的安全机制,应用默认不信任用户证书(手机里自己安装证书)
自己的 app
可以通过配置解决,但是抓其它 app
的 https
请求就行不通。
3.同2
补充,虽然7.0之后常规手段不能抓 https
的包,但是可以通过黑科技跳过证书验证流程,例如,通过 xposed
,安装 JustTrustMe 模块,https
证书检测直接跳过。
4. 抓包参考链接