новое оповещение консоли Google Play, которое всплывало для многих пользователей.
issue code: SNYK-JS-JQUERY-174006
vulnerable jquery 3.1.1 version
file: assets/www/js/jquery.min.js
в отличие от этого сообщения Я не указываю ни одну версию JS, но у меня есть JS с включенным WebViewв приложении.
Есть ли способ решить эту проблему?
Обновление:
согласно запросу, вот мой код webview
. Однако, как я уже упоминал в комментарии, я не использую jQuery. и подозревая, что одна из зависимостей (библиотек) использует его. но я не уверен, как точно определить местоположение, так как поиск по проекту *.js
не дал результатов.
Мой код WebViewe:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
String ua = "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.63 Safari/537.31";
view = inflater.inflate(R.layout.fragment_a, container, false);
_wvAGate = view.findViewById(R.id.wvA);
setDesktopMode(_wvAGate, true);
_wvAGate.getSettings().setJavaScriptEnabled(true);
WebSettings ws = _wvAGate.getSettings();
ws.setJavaScriptEnabled(true);
ws.setAllowFileAccess(true);
ws.setBuiltInZoomControls(true);
ws.setDisplayZoomControls(false);
try {
Timber.d("Enabling HTML5-Features");
Method m1 = WebSettings.class.getMethod("setDomStorageEnabled", new Class[]{Boolean.TYPE});
m1.invoke(ws, Boolean.TRUE);
Method m2 = WebSettings.class.getMethod("setDatabaseEnabled", new Class[]{Boolean.TYPE});
m2.invoke(ws, Boolean.TRUE);
Method m3 = WebSettings.class.getMethod("setDatabasePath", new Class[]{String.class});
m3.invoke(ws, "/data/data/" + getActivity().getPackageName() + "/databases/");
Method m4 = WebSettings.class.getMethod("setAppCacheMaxSize", new Class[]{Long.TYPE});
m4.invoke(ws, 1024 * 1024 * 8);
Method m5 = WebSettings.class.getMethod("setAppCachePath", new Class[]{String.class});
m5.invoke(ws, "/data/data/" + getActivity().getPackageName() + "/cache/");
Method m6 = WebSettings.class.getMethod("setAppCacheEnabled", new Class[]{Boolean.TYPE});
m6.invoke(ws, Boolean.TRUE);
} catch (Exception e){
Timber.e("AGate exception",e);
}
_wvAGate.getSettings().setUserAgentString(ua);
_wvAGate.getSettings().setUseWideViewPort(true);
_wvAGate.getSettings().setLoadWithOverviewMode(true);
_wvAGate.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
return super.onConsoleMessage(consoleMessage);
}
});
_wvAGate.setWebViewClient(new WebViewClient() {
@SuppressLint("NewApi")
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
return null;
}
});
_wvAGate.addJavascriptInterface(new WebAppInterface(getActivity()), "Gate");
}
public void setDesktopMode(WebView webView, boolean enabled) {
String newUserAgent = webView.getSettings().getUserAgentString();
if (enabled) {
try {
String ua = webView.getSettings().getUserAgentString();
String androidOSString = webView.getSettings().getUserAgentString().substring(ua.indexOf("("), ua.indexOf(")") + 1);
newUserAgent = webView.getSettings().getUserAgentString().replace(androidOSString, "(X11; Linux x86_64)");
} catch (Exception e) {
e.printStackTrace();
}
} else {
newUserAgent = null;
}
webView.getSettings().setUserAgentString(newUserAgent);
webView.getSettings().setUseWideViewPort(enabled);
webView.getSettings().setLoadWithOverviewMode(enabled);
webView.reload();
}
Я бы хотелСпасибо, если у вас есть какие-либо решения по этой проблеме.
ура!