android - एंड्रॉइड Google Play चेतावनी: SSL त्रुटि हैंडलर भेद्यता




google-play android-security (2)

समाधान पर रीसएिवएसएसएलईआरर निकालना है

मैं अपने ऐप में गोरबिन / एएसएनई एसडीके का उपयोग करता हूं हाल ही में मैंने Google से निम्न विषय के साथ एक ईमेल प्राप्त किया: "Google Play चेतावनी: SSL त्रुटि हैंडलर भेद्यता"। इस ईमेल में, Google बताता है कि मेरे ऐप में "[WebViewClient.onReceivedSslError हैंडलर के असुरक्षित कार्यान्वयन]" है

और उन्होंने मुझे ["एसएसएल प्रमाणपत्र सत्यापन को ठीक तरह से नियंत्रित करने के लिए, एसएसएलईआरआरएआरहैंडल। को जारी करने के लिए अपना कोड परिवर्तित करें।) जब भी सर्वर द्वारा प्रस्तुत प्रमाणपत्र आपकी अपेक्षाओं को पूरा करता है, और अन्यथा SslErrorHandler.cancel () को आमंत्रित करता है"]

यहां विधि का मेरा कार्यान्वयन है:

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

कोई मदद कृपया?


SSL प्रमाणपत्र सत्यापन ठीक से संभाल करने के लिए, अपना कोड SslErrorHandler को अग्रेषित करने के लिए बदलें। (जब भी सर्वर द्वारा प्रस्तुत प्रमाणपत्र आपकी अपेक्षाओं को पूरा करता है, और 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();
}

इस परिवर्तन के बाद यह चेतावनी नहीं दिखाएगा







android-security