收到google play的警告。
如何处理WebViewClient.onReceivedSslError处理程序不安全实现的"SSL错误处理程序漏洞“。
“请尽快解决此漏洞并增加升级的APK的版本号。若要正确处理SSL证书验证,请更改代码,以便在服务器提供的证书满足预期时调用SslErrorHandler.proceed(),否则调用SslErrorHandler.cancel()。”
发布于 2015-09-25 16:30:13
我今天收到了同样的警告,它告诉我这个问题来自于我的一个广告网络的SDK (InMobi,我真的在考虑删除它们,因为它们有很多欺诈性的、自动重定向的横幅,现在是这样的……):
com.inmobi.commons.analytics.iat.impl.net.AdTrackerWebViewLoader$MyWebViewClient
在您的案例中,受影响的类是什么?如果它是您自己的类,那么您必须阅读技术documentation并修复您的实现。
如果像我一样,您只是某个外部库的受害者,请联系开发人员,要求他们提供一个固定库(或丢弃该库)。
发布于 2016-02-17 23:25:43
您应该首先检查是否正确使用了WebViewClient.onReceivedSslError处理程序。
如果您没有使用WebViewClient库,或者您已经正确地使用了它,那么问题可能来自于第三方库。您可以首先在项目的根目录中使用此linux命令,以确定哪些库可能导致该问题:
find . -name '*.jar' -exec zipgrep -i onreceivedsslerror {} \;这将列出具有"OnReceivedSslError“字符串的所有jar文件中的文件。
在此之后,您可以检查每个匹配的文件中是否遵守了处理该漏洞的Google建议。
发布于 2016-05-16 14:03:46
如果你不需要在onReceivedSslErr(WebView,SslErrorHandler,SslError)中处理事情,只要删除这个方法就可以避免google play warning.Otherwise,你也不应该直接处理它。这是@sakiM,Webview avoid security alert from google play upon implementation of onReceivedSslError的一个例子
@Override
public void onReceivedSslError(WebView view, final SslErrorHandler handler, SslError error) {
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(R.string.notification_error_ssl_cert_invalid);
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();
}如果第三个库调用了onReceivedSslErr方法,只需联系提供者即可。
https://stackoverflow.com/questions/32775592
复制相似问题