本文以開發人員為對象,針對應用程式使用不安全實行的 WebViewClient.onReceivedSslError 處理常式。
有什麼變動?
您的一個或多個應用程式含有不安全實行的 onReceivedSslError 處理常式,讓應用程式容易受到 Man-in-the-middle 攻擊。攻擊者可能變更受影響的 WebView 內容、讀取傳輸的資料 (如登入憑證),以及使用 JavaScript 在應用程式內執行程式碼。請參閱「Play 管理中心」的通知。「Play 管理中心」顯示的限期過後,任何含有未修正安全漏洞的應用程式可能會從 Google Play 中移除。
需要採取行動
- 登入「Play 管理中心」,並導覽至「警示」部分,查看受影響的應用程式及解決問題的限期。
- 更新受影響的應用程式並修復漏洞。
- 提交受影響應用程式的更新版本。
重新提交後,您的應用程式將再次接受審核,此程序可能需時幾小時。如果應用程式通過審核並成功發佈,則您無需採取進一步行動。如果應用程式未能通過審核,則新的應用程式版本將不會發佈,而您將收到電郵通知。
其他詳細資料
- 如要更正問題,請更新應用程式程式碼,在伺服器提供的憑證符合您預期時調用 SslErrorHandler.proceed(),否則調用 SslErrorHandler.cancel()。檢查憑證的有效性時,請緊記以下各點:
-
如果應用程式沒有內含充分的憑證有效性檢查,則可能會被舉報,例如只檢查 getPrimaryError 傳回的值不足以確立憑證的有效性。
-
略過 SslError.getPrimaryError 傳回的大部分 SSL 錯誤並不安全。請注意,getPrimaryError 以錯誤集傳回最嚴重的錯誤,因此如果
getPrimaryError() != SSL_UNTRUSTED
是 true,則連線在錯誤集內可能仍然含有 SSL_UNTRUSTED 錯誤。
-
-
如果您使用的第三方程式庫是問題所在,請通知該第三方,並與對方合作解決問題。
有關此 SSL 錯誤處理常式的更多資訊,請參閱 Android 開發人員說明中心內的說明文件。如有其他技術問題,請前往 https://www.stackoverflow.com/questions 發佈並加上「android-security」和「SslErrorHandler」標籤。
儘管這些特定問題未必影響每個使用 WebView SSL 的應用程式,但最好安裝所有最新的安全修補程式。如有漏洞的應用程式讓使用者冒受盜用風險,則可能被視為違反《內容政策》和《開發人員發行協議》第 4.4 部分而被納入危險產品。
我們樂意提供協助
如有關此漏洞的技術問題,請在 Stack Overflow 發佈並加上「android-security」標籤。如需我們釐清解決此問題的所需步驟,請與開發人員支援團隊聯絡。