如何處理應用程式中的 WebView SSL 錯誤處理常式快訊

開發人員請注意,如果您的應用程式使用的 WebViewClient.onReceivedSslError 處理常式實作方式不安全,請詳閱本文資訊。

問題說明

您有一或多個應用程式以不安全的方式實作 onReceivedSslError 處理常式,因此很容易遭受攔截式攻擊。攻擊者可能會變更受影響的 WebView 內容、讀取傳輸的資料 (例如登入憑證),以及執行應用程式內使用的 JavaScript 程式碼。請參閱 Play 管理中心的通知內容。Play 管理中心顯示的修正期限過後,Google Play 可能會將尚未修復安全漏洞的應用程式下架。

敬請配合​

  1. 登入 Play 管理中心,然後前往「快訊」專區查看受影響的應用程式以及解決這些問題的期限。
  2. 更新受影響的應用程式並修復安全漏洞。
  3. 提交受影響應用程式的更新版本。

我們將再次審查您重新提交的應用程式,過程可能需要數小時。如果應用程式可以通過審查並成功發布,您就不必採取進一步行動。如果應用程式未能通過審查,就無法發布新的版本,而且您將收到電子郵件通知。

其他詳細資訊

  1. 如要解決這個問題,請更新應用程式的程式碼,在伺服器提供的憑證符合預期時叫用 SslErrorHandler.proceed(),不符合預期時則叫用 SslErrorHandler.cancel()。檢查憑證效力時,請記住以下要點:
    1. 如果憑證效力檢查不夠充分,應用程式可能會因此遭到檢舉。舉例來說,只檢查 getPrimaryError 傳回的值並不能完全確認憑證效力。

    2. 忽略 SslError.getPrimaryErro 傳回的大多數 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
主選單
15443444650110395710
true
搜尋說明中心
true
true
true
true
true
5016068
false
false