簡體   English   中英

android Google Play警告:SSL錯誤處理程序漏洞

[英]android Google Play Warning: SSL Error Handler Vulnerability

我在我的應用程序中使用gorbin / ASNE SDK。 我最近收到了Google發來的一封電子郵件,其中包含以下主題:“Google Play警告:SSL錯誤處理程序漏洞”。 在這封電子郵件中,Google解釋說我的應用程序有[“WebViewClient.onReceivedSslError處理程序的不安全實現”]

他們建議我[“要正確處理SSL證書驗證,只要服務器提供的證書符合您的期望,就更改代碼以調用SslErrorHandler.proceed(),並調用SslErrorHandler.cancel()否則”]

這是我的方法實現:

   public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
                handler.proceed();
            }

有什么幫助嗎?

要正確處理SSL證書驗證,只要服務器提供的證書符合您的期望,就更改代碼以調用SslErrorHandler.proceed() ,否則調用SslErrorHandler.cancel()

例如,我添加了一個警告對話框,以便用戶確認並且Google似乎不再顯示警告。

    @Override
    public void onReceivedSslError(WebView view, final SslErrorHandler handler, SslError error) {
    final AlertDialog.Builder builder = new AlertDialog.Builder(this);
    String message = "SSL Certificate error.";
        switch (error.getPrimaryError()) {
            case SslError.SSL_UNTRUSTED:
                message = "The certificate authority is not trusted.";
                break;
            case SslError.SSL_EXPIRED:
                message = "The certificate has expired.";
                break;
            case SslError.SSL_IDMISMATCH:
                message = "The certificate Hostname mismatch.";
                break;
            case SslError.SSL_NOTYETVALID:
                message = "The certificate is not yet valid.";
                break;
        }
        message += " Do you want to continue anyway?";

        builder.setTitle("SSL Certificate Error");
        builder.setMessage(message);
    builder.setPositiveButton("continue", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            handler.proceed();
        }
    });
    builder.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            handler.cancel();
        }
    });
    final AlertDialog dialog = builder.create();
    dialog.show();
}

更改后,它不會顯示警告。 參考

解決方案是刪除onReceivedSslError

我正在使用backendless庫舊版本編譯'com.backendless:backendless:3.0.11'所以我更新到最新版本編譯'com.backendless:backendless:3.0.24'並解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM