您的应用正在使用主机名验证程序的不安全实现

时间:2017-10-05 07:11:34

标签: android google-play android-security

当我将我的应用程序上传到Playstore时,它会显示警告

  

"您的应用正在使用主机名验证程序"

的不安全实施

如何解决这个问题。

 SSLContext sc = SSLContext.getInstance("SSL"); sc.init(null, trustAllCerts, new SecureRandom());
 HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFa‌​ctory());
 HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {

 @Override public boolean verify(String arg0, SSLSession arg1) {

       return true; 
   } 
}); 

1 个答案:

答案 0 :(得分:1)

您正在使用HostnameVerifier接口的不安全实现

HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() { 
    @Override public boolean verify(String arg0, SSLSession arg1) { 
        return true; 
    } 
});

Playstore现在非常严格。 您可以查看此link以获取更多信息。

只要服务器的主机名不符合您的期望,

而不是true总是返回false。

改为使用

@Override
public boolean verify(String arg0, SSLSession arg1) { 
    HostnameVerifier hv = HttpsURLConnection.getDefaultHostnameVerifier();
    return hv.verify("your_domain.com", arg1);
}