在 Android 7.0了,引入了「Network Security Configuration」,当时默认配置为信任系统内置证书以及用户安装证书,并且允许访问 HTTP 请求。
而在 Android 9.0上,默认只信任系统证书了,并且默认不再允许访问 HTTP 请求,所以在很多适配P文章中,因为无法访问 HTTP 了,无法抓包了,所以我们要引入如下配置:
<base-config>
<trust-anchors>
<certificates src="system" />
<certificates src="user" /> // 信任用户安装证书
</trust-anchors>
</base-config>
问题来了,今天在一个技术群,有人说:
高版本的(AndroidP ),需要配置 android:networkSecurityConfig="@xml/network_security_config"(上面的配置) ,才能抓包
- 这个结论一定是正确的吗?
- 我在Android P以及以上的设备中不配置networkSecurityConfig,就一定无法抓包吗?
其实之前问过类似的问题,上次没人回答,这次细化到具体场景了。
追加:
问题固定一下场景,比如使用 charles,fidder 进行抓自己 app 的包;作为开发者,在 Android P的设备上(app 的targetVersion>=P),如果不配置networkSecurityConfig 有可能能抓包成功吗?
更多问答 >>
-
2020-07-08 23:05
-
每日一问 | RecyclerView的多级缓存机制,每级缓存到底起到什么样的作用?
2020-07-19 23:56 -
每日一问 | 比 removeView 更轻量的操作,你了解过吗?
2020-07-27 01:14 -
每日一问| View 绘制的一个细节,如何修改 View 绘制的顺序?
2020-08-12 10:21 -
每日一问 | apply plugin: 'com.android.application' 背后发生了什么?
2020-08-16 19:56 -
每日一问 | 曾经的记忆中“onSaveInstanceState 会在系统意外杀死 Activity 时调用”,正确吗?
2020-07-12 23:49 -
2020-06-09 23:17
-
每日一问 | Activity与Fragment的那些事,“用起来没问题,我都要走了,你崩溃了?”
2020-06-22 00:39 -
2020-06-07 20:55
-
每日一问 在 Java 支持了 switch(字符串)之后,只是语法糖而已?
2020-06-01 00:55
不全对,也要看targetSdk版本,24以下不需要配置
root之后手动把证书丢到系统目录去就可以抓了
我觉得你得分用什么方式抓包,如果用这种方式抓包chrome://inspect/#devices,stetho 就不用
抓包原理是啥?有大佬讲讲吗?
理解HTTP抓包,先理解管道。tcp 1 号管,udp 2 号管,http 3 号管,它们都汇集在 0 号管道,网络管道。 抓包使用代理,说简单就是拦截管道,把管道内的数据流导入到一个过滤口,经过关 ...查看更多
理解HTTP抓包,先理解管道。tcp 1 号管,udp 2 号管,http 3 号管,它们都汇集在 0 号管道,网络管道。 抓包使用代理,说简单就是拦截管道,把管道内的数据流导入到一个过滤口,经过关键字过滤和http协议解析,就可以滤出来一个网络请求整包。 http都是明文,直接查找字符串肯定相当简单了。而https大多经过证书加密,所以字符串找不到,抓包也没什么软用了。 0号管道的数据流汇集在根服务器
https://api2.mubu.com/v3/document_image/0d58ec48-bd7a-493f-b9f5-23417320654e-7476159.jpg ...查看更多
https://api2.mubu.com/v3/document_image/0d58ec48-bd7a-493f-b9f5-23417320654e-7476159.jpg
对的
也是对的,不配置发出请求前就报错了
话说双向认证的app抓包要怎么抓?拿到客户端证书?
默认不信任用户证书,有root权限可以把证书放到系统的目录去就可以抓了