登录

去注册

登录

注册

去登录

注册

解锁回答区域

  • 扫码关注公众号
  • 发送“我爱安卓

若你登陆,将永久解锁;
若未登录,仅本机解锁。

解锁回答区域

每日一问 系统帮我们做了网络安全校验,那么还需要我们手动去做吗?

xiaoyang   2020-01-14 20:33   收藏

在 Android 7.0了,引入了「Network Security Configuration」,当时默认配置为信任系统内置证书以及用户安装证书,并且允许访问 HTTP 请求。

而在 Android 9.0上,默认只信任系统证书了,并且默认不再允许访问 HTTP 请求,所以在很多适配P文章中,因为无法访问 HTTP 了,无法抓包了,所以我们要引入如下配置:

<base-config cleartextTrafficPermitted="true"> // 允许 http 请求访问
    <trust-anchors>
        <certificates src="system" />
                 <certificates src="user" /> // 信任用户安装证书
    </trust-anchors>
</base-config>

当然了,配置还有很多,甚至可以配置自签名的证书。

不过我们的问题是:

在 P之前,我们其实已经做了一些 https 的安全验证,比如通过 okhttp 的相关配置,设置 https 相关参数。

注意问题是:

  1. 现在已经有了「Network Security Configuration」,类似“通过 okhttp 的相关配置,设置 https 相关参数”还需要做吗?
  2. 如果 1 中我们两种方式都做了,那么系统的验证流程到底是怎么样的?是Network Security Configuration验证一遍,"okhttp"再验证一遍吗?
  3. 关于「Network Security Configuration」,系统到底是在哪里验证的,比如抛出“HTTP 禁止访问的异常”是在哪?

删除留言

确认删除留言,会导致相关评论丢失?

取消 确定