開發人員請注意,如果您的應用程式含有 Intent 配置易遭盜用的安全漏洞,請詳閱本文資訊。
問題說明
您的一或多個應用程式含有 Intent 配置易遭盜用的問題,可能導致惡意網路或網站趁機存取應用程式元件。請參閱 Play Console 的通知內容。在 Play Console 顯示的修正期限過後,Google Play 會將尚未修復安全漏洞的應用程式下架。
敬請配合
-
登入 Play Console,然後前往「快訊」專區查看受影響的應用程式以及解決這些問題的期限。
-
按照下方標明的步驟更新受影響的應用程式。
-
提交受影響應用程式的更新版本。
我們將再次審查您重新提交的應用程式,過程可能需要數小時。如果應用程式可以通過審查並成功發布,您就不必採取進一步行動。如果應用程式未能通過審查,就無法發布新的版本,而且您將收到電子郵件通知。
其他詳細資訊
如果 WebViews 存取不受信任的網路內容、使用 Intent.parseUri 剖析 intent:// 連結,並利用 startActivity 傳送這些 Intent,就會導致 Intent 配置容易遭到盜用。這類 WebView 可能會因為受到惡意網路內容的操弄,而將任意 Intent 傳送給私人應用程式元件,導致應用程式遭駭;舉例來說,駭客可能會藉由操縱這類元件,盜取私人應用程式資料。需要注意的是,不受信任的網路內容往往包括透過 HTTP 載入的受信任網域內容。
建議您採用下列其中一種做法來防堵這個安全漏洞:
做法 1:確定 WebView 無法傳送任意 Intent
應用程式可使用以下程式碼,限制經由 Intent.parseUri 建構的 Intent 僅能以 Implicit Intent 形式將傳送到具有 BROWSABLE Intent 篩選器的元件:
// convert Intent scheme URL to Intent object
Intent intent = Intent.parseUri(url);
// forbid launching activities without BROWSABLE category
intent.addCategory("android.intent.category.BROWSABLE");
// forbid explicit call
intent.setComponent(null);
// forbid Intent with selector Intent
intent.setSelector(null);
// start the activity by the Intent
view.getContext().startActivity(intent, -1);
做法 2:確定受影響的 WebView 不會載入不受信任的網路內容
如果 WebView 需要剖析任意 intent://
配置網址,請確定 WebView 不會載入不受信任的網路內容。不受信任的網路內容包括透過未加密連線載入的網路內容。開發人員可以在 Manifest 中將 android:usesCleartextTraffic
設為 false,或將 Network Security Config 設為不允許 HTTP 流量。開發人員也可以防止所有受影響的 WebView 透過 loadUrl
載入任何使用 HTTP 配置的網址。
建議開發人員確保受影響的 WebView 不會載入從非信任來源取得且不受限制的網址,例如從不受信任的 Intent 取得的網址。
我們很樂意提供協助
如有關於安全漏洞的技術問題,請前往 Stack Overflow 張貼問題並加上「android-security」標記。如需進一步瞭解這個問題的解決步驟,歡迎與開發人員支援小組聯絡。