明文 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>

這個選項可防止應用程式因為外部來源 (如後端伺服器) 提供的網址有變而發生迴歸錯誤。

資源