web-dev-qa-db-fra.com

Alerte de sécurité de Google Play Store Dit que votre application contient des bibliothèques JavaScript vulnérables comment supprimer l'avertissement de sécurité?

Dans Google Play Store, je reçois un avertissement ci-dessous,

Votre application contient une ou plusieurs bibliothèques présentant des problèmes de sécurité connus. Veuillez consulter ceci article du Centre d'aide Google pour plus de détails.

Bibliothèques JavaScript vulnérables:

  • Nom -> jquery
  • Version -> 3.3.1
  • Problèmes connus -> SNYK-JS-JQUERY-174006
  • Fichiers identifiés -> res/raw/jquery_min.js

Remarque: lors du chargement de la vue Web dans mon application, je vais intercepter la demande dans l'URL de la vue Web et charger le fichier local jquery_min.js à partir de la ressource de dossier brut, ce qui nous aide à charger la page Web plus rapidement grâce à cette fonction et j'économise 5 Go de téléchargement depuis le serveur par mois.

enter image description here

Exemple de programme 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);

Classe de chargement de scripts locaux

 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. Si je mets à jour le nouveau script Jquery, Google Play supprimera-t-il l'alerte de sécurité (bibliothèques JavaScript vulnérables)?
  2. Si je place le script Jquery ailleurs dans mon application, Google Play supprimera-t-il l'alerte de sécurité?
  3. Faites-moi savoir quel est le moyen efficace de charger le script dans la vue Web sans charger à chaque fois depuis le serveur.
13
Sarath Kumar

Notification de sécurité

Votre application contient une ou plusieurs bibliothèques présentant des problèmes de sécurité généraux. Veuillez consulter cet article du centre d'aide Google pour plus de détails.

Bibliothèque JavaScript vulnérable:

Nom de la version Problème connu Fichier identifié jquery 2.2.4 SNYK-npm: jquery: 20150627 SNYK-JS-JQUERY-174006 assets/jquery-2.2.4.min.js Affecte la version 9 de l'APK.

Problème: j'ai utilisé jquery version 3.4.1 et cela a un effet sur l'apparence de mon application, par exemple dans le thème d'affichage, l'icône de l'application n'est pas visible et devient salissante

correct ... J'ai changé l'avertissement de sécurité de la version 3.4.1 de Google résolu mais, l'icône de l'application n'est pas visible et devient en désordre