我正在尝试在Google Play中发布我的应用并从Google Play收到此消息。
我们因违反我们的恶意行为或用户数据政策而拒绝了您的应用程序,包名称为xxx.xxx.xxx.xxx。如果您提交了更新,那么您之前的应用版本仍可在Google Play上使用。
此应用使用包含用户安全漏洞的软件,或允许在没有正确披露的情况下收集用户数据。
以下是问题
的HostnameVerifier 您的应用正在使用HostnameVerifier接口的不安全实现。您可以在此Google帮助中心文章中找到有关如何解决问题的详细信息。
以下是我如何使用它:
static HostnameVerifier hostnameVerifier = new HostnameVerifier() {
@Override
public boolean verify(String hostname, SSLSession session) {
if(hostname.equalsIgnoreCase("staging.hostname") || hostname.equalsIgnoreCase("production.sostname")){
return true;
}else{
return false;
}
}
};
并且这样称呼它:
HttpsURLConnection conn = (HttpsURLConnection) requestURL
.openConnection();
conn.setHostnameVerifier(hostnameVerifier);
请让我知道我做错了什么。提前谢谢。
答案 0 :(得分:0)
您的验证器确实不安全。查看默认验证程序执行的检查范围:OkHostnameVerifier。这实际上是最佳实践 - 将此验证留给平台。
您可以在上面添加额外的检查,例如限制主机名。如果您的服务器缺少服务器名称指示,您可以查看 Google 在 2014 年之前是如何解决这个问题的:https://android.googlesource.com/platform/external/okhttp/+/cc0952ec282184914a6153e9deff458c94785fd1%5E%21。