gpt4 book ai didi

javascript - Google Play 商店安全警报说您的应用程序包含易受攻击的 JavaScript 库如何删除安全警告?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:08:00 28 4
gpt4 key购买 nike

在 Google Play 商店中,我收到如下警告,

您的应用包含一个或多个存在已知安全问题的库。请看这个Google Help Center article了解详情。

易受攻击的 JavaScript 库:

  • 名称 --> jquery
  • 版本 --> 3.3.1
  • 已知问题 --> SNYK-JS-JQUERY-174006
  • 识别文件 --> res/raw/jquery_min.js

注意:在我的应用程序中加载 webview 时,我将在 webview url 中拦截请求并从原始文件夹资源加载本地 jquery_min.js 文件,由于此功能,这有助于我们更快地加载网页,并且我每月从服务器下载 5 GB .

enter image description here

示例 WebView 程序

    LoadLocalScripts localScripts=new LoadLocalScripts(this);
webView.setWebViewClient(new WebViewClient() {


public boolean shouldOverrideUrlLoading(WebView view, String url) {

return true;
}

//Show loader on url load
public void onLoadResource(WebView view, String url) {

}

public void onPageFinished(WebView view, String url) {

}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {

}


@Override
public WebResourceResponse shouldInterceptRequest (final WebView view, String url) {

WebResourceResponse response= localScripts.getLocalSCripts(url);
if(response==null) {
return super.shouldInterceptRequest(view, url);
}else{
return response;
}
}


});

webView.loadUrl(url);

加载本地脚本的类

 public class LoadLocalScripts {
private Context ctx;

public LoadLocalScripts(Context context) {
ctx=context;
}

public WebResourceResponse getLocalSCripts(String url)
{
//Log.e("url_raw",url);

if (url.contains(".css")) {
if(url.contains("bootstrap.min.css")) {
return getCssWebResourceResponseFromRawResource("bootstrap_min.css");
}else {
return null;
}
}else if (url.contains(".js")){
if(url.contains("bootstrap.min.js")) {
return getScriptWebResourceResponseFromRawResource("bootstrap_min.js");
} else if(url.contains("jquery.lazyload.min.js")) {
return getScriptWebResourceResponseFromRawResource("lazyload_min.js");
} else{
return null;
}
} else {
return null;
}
}


/**
* Return WebResourceResponse with CSS markup from a raw resource (e.g. "raw/style.css").
*/
private WebResourceResponse getCssWebResourceResponseFromRawResource(String url) {

//Log.e("url_raw",url);
if(url.equalsIgnoreCase("bootstrap_min.css")) {
return getUtf8EncodedCssWebResourceResponse(ctx.getResources().openRawResource(R.raw.bootstrap_min));
}else {
return null;
}
}

private WebResourceResponse getScriptWebResourceResponseFromRawResource(String url) {

//Log.e("url_raw",url);
if(url.equalsIgnoreCase("bootstrap_min.js")) {
return getUtf8EncodedScriptWebResourceResponse(ctx.getResources().openRawResource(R.raw.bootstrap_min_js));
}else if(url.equalsIgnoreCase("lazyload_min.js")) {
return getUtf8EncodedScriptWebResourceResponse(ctx.getResources().openRawResource(R.raw.lazyload_min));
}else {
return null;
}
}


private WebResourceResponse getUtf8EncodedCssWebResourceResponse(InputStream data) {
return new WebResourceResponse("text/css", "UTF-8", data);
}

private WebResourceResponse getUtf8EncodedScriptWebResourceResponse(InputStream data) {
return new WebResourceResponse("text/javascript", "UTF-8", data);
}
}
  1. 如果我更新新的 Jquery 脚本,Google Play 将删除安全性警报(易受攻击的 JavaScript 库)?
  2. 如果我将 Jquery 脚本放在我的应用程序的其他地方,谷歌播放删除安全警报?
  3. 让我知道加载脚本的有效方法是什么webview 无需每次都从服务器加载。

最佳答案

此问题是指来自您的 res/raw/jquery_min.js 文件的 jquery 的旧漏洞。

刚刚将 jquery_min.js 更新到 v3.4.1 并修复了它。

您可以在代码中的文件更改中手动修复它:

来自:

if(null!=(e=arguments[s]))for(t in e)n=a[t],a!==(r=e[t])&&(l&&r&&(w .isPlainObject(r)||

收件人:

if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(k.isPlainObject (r)||

我在 https://www.privacy-wise.com/mitigating-cve-2019-11358-in-old-versions-of-jquery/ 中找到了这个解决方案并为我工作。

关于javascript - Google Play 商店安全警报说您的应用程序包含易受攻击的 JavaScript 库如何删除安全警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58316191/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com