明文/纯文本 HTTP

OWASP 类别:MASVS-NETWORK:网络通信

概览

在 Android 应用中允许明文网络通信,意味着监控网络流量的任何人都可以查看和操纵正在传输的数据。如果传输的数据包含敏感信息(例如密码、信用卡号或其他个人信息),这就会成为一个漏洞。

无论您是否发送敏感信息,使用明文都可能成为漏洞,因为攻击者也可能通过网络投毒攻击(例如 ARP 或 DNS 投毒)来操纵明文/纯文本 HTTP 流量,因此仍有可能影响应用的行为。

影响

当 Android 应用通过网络发送或接收明文数据时,监控网络的任何人都可以拦截并读取这些数据。如果这些数据包含敏感信息(例如密码、信用卡号或个人消息),可能会导致身份窃取、金融欺诈和其他严重问题。

例如,应用如果以明文形式传输密码,可能会将这些凭据泄露给拦截流量的恶意操作者。然后,他们可能会利用这些数据,在未经授权的情况下获得用户账号的访问权限。

缓解措施

此部分中的指南仅适用于以 Android 8.1(API 级别 27)或更低版本为目标平台的应用。从 Android 9(API 级别 28)开始,系统默认情况下已停用明文支持。

使用 NetworkSecurityConfig.xml 功能来选择停用明文流量:

Xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="false">
        <domain includeSubdomains="true">secure.example.com</domain>
    </domain-config>
</network-security-config>

此选项有助于防止应用因外部源(如后端服务器)提供的网址发生变化而意外回归。

资源