网络安全之NetworkSecurityConfig
2023-02-01 本文已影响0人
David_zhou
这个东西影响开发时是否能本地抓取https包,一直对这个东西不太懂,每次要用了就百度或者找其他人的代码。
为什么这个配置文件能决定抓包是否成功,需要好好学习下.
现在有以下三个配置,哪个配置能成功抓htsps呢?各个字段什么含义?
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
<debug-overrides>
<trust-anchors>
<certificates src="system" overridePins="true" />
<certificates src="user" overridePins="true" />
</trust-anchors>
</debug-overrides>
</network-security-config>
配置1
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<!-- <debug-overrides>-->
<trust-anchors>
<certificates src="system" />
<certificates src="user" />
</trust-anchors>
<!-- </debug-overrides>-->
</base-config>
</network-security-config>
配置2
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" overridePins="true" />
<certificates src="user" overridePins="true" />
</trust-anchors>
</base-config>
</network-security-config>
配置3
答案揭晓:配置2 和配置3 是可以抓取的,配置1 是不行的。
此处应该补上 配置文件字段的解析,自己现在还不清楚,需要仔细看看。文件的解析可以参考这个资料
SSL-NetworkSecurityConfig证书配置解析
网络安全之NetworkSecurityConfig
现在的项目痛点release包不能抓https的包。几个方案可以尝试下
1 测试开关打开后,输出所有的网络请求的请求和响应数据。
2 手机root,放置自己的证书到特定目录。
3 Charles + VirtualXposed + JustTrustMe 接口测试实战 | Android 高版本无法抓取 HTTPS,怎么办?
4 从NetworkSecurityConfig的配置入手?
5 改动包,重签名
方案1比较容易实现。方案3 已经有人实践过,路是可以走通的。那么方案2和4,5呢? 后续尝试看看