WebView имеет уязвимость даже после помещения файла конфигурации сетевой безопасности в> API 24
Может ли кто-нибудь помочь удалить уязвимость в моем веб-просмотре Android. Я уже разместил файл NSC и сертификат своего сайта, но уязвимость все еще сохраняется.
1 ответ
Преодолеть onReceivedSslError
метод внутри setWebViewClient
с выбором пользователя, чтобы продолжить.
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
AlertDialog.Builder builder = new AlertDialog.Builder(requireNonNull(getActivity()));
AlertDialog alertDialog = builder.create();
String message = getString(R.string.ssl_error_msg);
switch (error.getPrimaryError()) {
case SslError.SSL_UNTRUSTED:
message = getString(R.string.ssl_untrusted);
break;
case SslError.SSL_EXPIRED:
message = getString(R.string.ssl_expired);
break;
case SslError.SSL_IDMISMATCH:
message = getString(R.string.ssl_host_mismatch);
break;
case SslError.SSL_NOTYETVALID:
message = getString(R.string.ssl_not_yet_valid);
break;
}
message += getString(R.string.do_you_want_to_continue_anyway);
alertDialog.setTitle(getString(R.string.ssl_cert_error_msg));
alertDialog.setMessage(message);
alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, "OK", (dialog, which) -> {
// Ignore SSL certificate errors
handler.proceed();
});
alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel", (dialog, which) -> {
//myWebView.loadUrl(_URL);
handler.cancel();
dismiss();
});
alertDialog.show();
}