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