跳过内容

MASTG-TEST-0235: 允许明文流量的 Android 应用配置

概述

由于 Android 9 (API level 28) 默认情况下会阻止明文 HTTP 流量 (感谢 默认的网络安全配置),但应用程序仍然可以通过多种方式发送它。

  • AndroidManifest.xml: 设置 <application> 标签的 android:usesCleartextTraffic 属性。 请注意,如果配置了网络安全配置,则会忽略此标志。
  • 网络安全配置: 在 <base-config><domain-config> 元素上将 cleartextTrafficPermitted 属性设置为 true

步骤

  1. 逆向工程该应用 ( 反编译 Java 代码)。
  2. 获取 AndroidManifest.xml。
  3. 获取网络安全配置。
  4. 从 AndroidManifest.xml 中读取 usesCleartextTraffic 的值。
  5. 从 NSC <base-config> 元素中读取 cleartextTrafficPermitted 的值。
  6. 从 NSC <domain-config> 元素中读取 cleartextTrafficPermitted 的值。

观察

输出包含可能允许明文传输的配置列表。

评估

如果允许明文传输,则测试用例失败。 如果以下任一条件为真,则可能发生这种情况

  1. AndroidManifest 将 usesCleartextTraffic 设置为 true 并且没有 NSC。
  2. NSC 在 <base-config> 中将 cleartextTrafficPermitted 设置为 true
  3. NSC 在任何 <domain-config> 中将 cleartextTrafficPermitted 设置为 true

注意: 如果 AndroidManifest 将 usesCleartextTraffic 设置为 true 并且存在 NSC,即使它只有一个空的 <network-security-config> 元素,测试也不会失败。 例如

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
</network-security-config>