关于安卓7.0及以上的Https请求抓包问题android:networkSecurityConfig

Android 7.0(API 级别 24)及更高版本默认只承认系统CA,所以默认是安全的,不需要配置。如果想要系统承认用户自己安装的CA,则修改配置(比如调试时会需要抓包)。

面向 Android 6.0(API 级别 23)及更低版本应用的默认配置如下所示,这段配置的意思是,承认系统CA和用户自己安装的CA,但这是一个默认配置,目前在6.0及以前好像都不起作用,即使去掉了user,依然承认自己安装的CA,不能确保100%防止https抓包

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
    <trust-anchors>
        <certificates src="system" />
        <certificates src="user" />
    </trust-anchors>
</base-config>
</network-security-config>

面向 Android 7.0(API 级别 24)及更高版本应用的默认配置如下所示,即只承认系统CA,如果要承认自己安装的CA,像上述6.0配置那样加上user即可

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
    <trust-anchors>
        <certificates src="system" />
    </trust-anchors>
</base-config>
</network-security-config>

实际操作:
1、在res/xml/下创建network_security_config.xml文件
2、文件写入上述配置
3、在清单文件的application标签下,引入此配置

<application android:networkSecurityConfig="@xml/network_security_config"
   ... >
   ...
</application>

官方地址:https://developer.android.com/training/articles/security-config#ConfigCustom

猜你喜欢

转载自blog.csdn.net/qq_17767113/article/details/83577354
今日推荐