updated - android trustmanager




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

我在我的應用程序中使用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();
            }

請幫忙嗎?


解決方案是刪除onReceivedSslError


為了正確處理SSL證書驗證,只要服務器提供的證書滿足您的期望,請更改您的代碼以調用SslErrorHandler.proceed(),否則請調用SslErrorHandler.cancel()。

例如,我添加了一個警告對話框,使用戶已經確認,似乎谷歌不再顯示警告。

    @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();
}

在這個改變之後它不會顯示warning.Referencec 鏈接





android-security