[英]android Google Play Warning: SSL Error Handler Vulnerability
我在我的應用程序中使用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();
}
有什么幫助嗎?
要正確處理SSL證書驗證,只要服務器提供的證書符合您的期望,就更改代碼以調用SslErrorHandler.proceed()
,否則調用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();
}
更改后,它不會顯示警告。 參考
解決方案是刪除onReceivedSslError
我正在使用backendless庫舊版本編譯'com.backendless:backendless:3.0.11'所以我更新到最新版本編譯'com.backendless:backendless:3.0.24'並解決問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.