如何處理應用程式內的 WebView SSL Error Handler 警示

本文以開發人員為對象,針對應用程式使用不安全實行的 WebViewClient.onReceivedSslError 處理常式。

有什麼變動?

您的一個或多個應用程式含有不安全實行的 onReceivedSslError 處理常式,讓應用程式容易受到 Man-in-the-middle 攻擊。攻擊者可能變更受影響的 WebView 內容、讀取傳輸的資料 (如登入憑證),以及使用 JavaScript 在應用程式內執行程式碼。請參閱「Play 管理中心」的通知。Play 管理中心」顯示的限期過後,任何含有未修正安全漏洞的應用程式可能會從 Google Play 中移除。

需要採取行動

  1. 登入「Play 管理中心」,並導覽至「警示」部分,查看受影響的應用程式及解決問題的限期。
  2. 更新受影響的應用程式並修復漏洞。
  3. 提交受影響應用程式的更新版本。

重新提交後,您的應用程式將再次接受審核,此程序可能需時幾小時。如果應用程式通過審核並成功發佈,則您無需採取進一步行動。如果應用程式未能通過審核,則新的應用程式版本將不會發佈,而您將收到電郵通知。

其他詳細資料

  1. 如要更正問題,請更新應用程式程式碼,在伺服器提供的憑證符合您預期時調用 SslErrorHandler.proceed(),否則調用 SslErrorHandler.cancel()。檢查憑證的有效性時,請緊記以下各點:
    1. 如果應用程式沒有內含充分的憑證有效性檢查,則可能會被舉報,例如只檢查 getPrimaryError 傳回的值不足以確立憑證的有效性。

    2. 略過 SslError.getPrimaryError 傳回的大部分 SSL 錯誤並不安全。請注意,getPrimaryError 以錯誤集傳回最嚴重的錯誤,因此如果 getPrimaryError() != SSL_UNTRUSTED 是 true,則連線在錯誤集內可能仍然含有 SSL_UNTRUSTED 錯誤。

  2. 如果您使用的第三方程式庫是問題所在,請通知該第三方,並與對方合作解決問題。

有關此 SSL 錯誤處理常式的更多資訊,請參閱 Android 開發人員說明中心內的說明文件。如有其他技術問題,請前往 https://www.stackoverflow.com/questions 發佈並加上「android-security」和「SslErrorHandler」標籤。

儘管這些特定問題未必影響每個使用 WebView SSL 的應用程式,但最好安裝所有最新的安全修補程式。如有漏洞的應用程式讓使用者冒受盜用風險,則可能被視為違反《內容政策》和《開發人員發行協議》第 4.4 部分而被納入危險產品

我們樂意提供協助

如有關此漏洞的技術問題,請在 Stack Overflow 發佈並加上「android-security」標籤。如需我們釐清解決此問題的所需步驟,請與開發人員支援團隊聯絡。

false
主選單
3964884185304037743
true
搜尋說明中心
true
true
true
true
true
5016068
false
false