গুগল প্লে স্টোর সুরক্ষা সতর্কতা বলছে যে আপনার অ্যাপ্লিকেশনটিতে ঝুঁকির মতো জাভাস্ক্রিপ্ট লাইব্রেরি রয়েছে কীভাবে সুরক্ষা সতর্কতাটি সরিয়ে ফেলা যায়?


13

গুগল প্লে স্টোর এ নীচের মত সতর্কতা পেয়ে যাচ্ছে,

আপনার অ্যাপ্লিকেশনটিতে জ্ঞাত সুরক্ষা সমস্যাযুক্ত এক বা একাধিক গ্রন্থাগার রয়েছে। বিশদ জন্য দয়া করে এই গুগল সহায়তা কেন্দ্র নিবন্ধটি দেখুন।

ক্ষতিগ্রস্থ জাভাস্ক্রিপ্ট লাইব্রেরি:

  • নাম -> jquery
  • সংস্করণ -> 3.3.1
  • জ্ঞাত সমস্যা -> এসএনওয়াইকে-জেএস-জ্যাকুয়েরি -174006
  • চিহ্নিত ফাইল -> রেজোল / কাঁচা / jquery_min.js

দ্রষ্টব্য: আমার অ্যাপ্লিকেশনটিতে ওয়েবভিউ লোড করার সময় আমি ওয়েবভিউ ইউআরএল-এ ইন্টারসেপট রিকোয়েস্ট করব এবং কাঁচা ফোল্ডার রিসোর্স থেকে স্থানীয় jquery_min.js ফাইলটি লোড করব যা আমাদের এই ফাংশনের কারণে দ্রুত ওয়েবপৃষ্ঠা লোড করতে সহায়তা করে এবং আমি প্রতি মাসে সার্ভার থেকে 5 জিবি ডাউনলোড সংরক্ষণ করি save

এখানে চিত্র বর্ণনা লিখুন

নমুনা ওয়েবভিউ প্রোগ্রাম

    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. আমি যদি জিকিউরি স্ক্রিপ্টে নতুন আপডেট করি তবে গুগল প্লে করবে সুরক্ষা সতর্কতা (দূষিত জাভাস্ক্রিপ্ট লাইব্রেরি)?
  2. আমি যদি আমার অ্যাপ্লিকেশনে কোথাও জ্যাকুই স্ক্রিপ্ট রাখি তবে গুগল প্লে করবে সুরক্ষা সতর্কতা?
  3. সার্ভার থেকে প্রতিবার লোড না করে ওয়েবভিউতে স্ক্রিপ্টটি লোড করার দক্ষ উপায় কী তা আমাকে জানতে দিন।

আপনি সম্ভবত একটি ক্লাউড বালতি (সম্ভবত ফায়ারবেস) থেকে স্ক্রিপ্টগুলি ডাউনলোড করতে পারেন এবং তারপরে সেগুলি ব্যবহার করতে পারেন। এটি করে, প্লে কনসোলটি আপনার অ্যাপ্লিকেশনটিতে কোনও দুর্বলতা খুঁজে পাবে না।
শুভম পঞ্চাল

উত্তর:


12

এই সমস্যাটি আপনার রেজাল্ট / কাঁচা / jquery_min.js ফাইল থেকে জেকুরির পুরানো দুর্বলতা বোঝায়।

সবেমাত্র 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/ এ পেয়েছি এবং আমার পক্ষে কাজ করেছি।


1
  1. সর্বশেষতম jquery v3.4.0 + ব্যবহার করে
  2. যদি আপনার পুরানো jquery v1.x / v2.x ব্যবহার করা আবশ্যক কারণ আপনার কোডগুলি বা তৃতীয় পক্ষের লাইব্রেরি নির্ভরতা (যেমন জ্যাকুয়েরি মোবাইল ইত্যাদি), আপনি ড্যানিয়েলরুফের স্নেক-জেএস-জেকুরি -174006 (*) থেকে একটি প্যাচ নিতে পারেন

(*) তবে আমি নিশ্চিত নই যে গুগল কীভাবে এপিকে jquery ফাইলটি খুঁজে পেয়েছে দুর্বলতা এবং প্যাচ করা হয়েছে ... পরীক্ষা করার প্রয়োজন (**)

2/1/2020 আপডেট হয়েছে: উপরোক্ত পদ্ধতিটি ব্যবহার করুন 2 প্যাচযুক্ত ফাইল গুগল সতর্কতা যাচাই এড়াতে পারে না। প্রথম মন্তব্যের লাইনটি সরিয়ে দেয়

/*! jQuery v2.2.4 | (c) jQuery Foundation | jquery.org/license */

jquery-2.2.4.min.js এর ভিতরে (এবং আমি jquery-patched 2.2.4.min.js নামকরণও করেছি) আমার নতুন প্রকাশে কাজ করেছে বলে মনে হচ্ছে। (এবং এটি আমার পরীক্ষায় আনপ্যাচড ফাইলটিতেও কাজ করেছে, এটি আরও ভালভাবে একটি প্যাচ তৈরি করা উচিত)


ধন্যবাদ, .js ফাইল থেকে jQuery সংস্করণ মন্তব্য মুছে ফেলার জন্য এটি সমস্ত কিছু গ্রহণ করেছিল।
অ্যান্ড্রু লিম

0

সুরক্ষা বিজ্ঞপ্তি

আপনার অ্যাপ্লিকেশনটিতে এক বা একাধিক লাইব্রেরি রয়েছে যাতে সাধারণ সুরক্ষা সমস্যা রয়েছে। বিশদ জন্য দয়া করে এই গুগল সহায়তা কেন্দ্র নিবন্ধটি দেখুন।

ক্ষতিগ্রস্থ জাভাস্ক্রিপ্ট লাইব্রেরি:

সংস্করণ নাম জ্ঞাত সমস্যা ফাইলটি সনাক্ত করেছে jquery 2.2.4 SNYK-npm: jquery: 20150627 SNYK-JS-JQUERY-174006 সম্পদ / jquery-2.2.4.min.js এপিপি সংস্করণ 9 প্রভাবিত করে।

সমস্যা: আমি jquery সংস্করণ 3.4.1 ব্যবহার করেছি এবং এটি আমার অ্যাপ্লিকেশনটির চেহারাতে প্রভাব ফেলেছে, উদাহরণস্বরূপ ডিসপ্লে থিমে, অ্যাপ্লিকেশন আইকনটি দৃশ্যমান নয় এবং অগোছালো হয়ে যায়

সঠিক ... আমি গুগল থেকে সুরক্ষা সতর্কতা সমাধানের সংস্করণ 3.4.1 পরিবর্তন করেছি তবে, অ্যাপ্লিকেশন আইকনটি দৃশ্যমান নয় এবং অগোছালো হয়ে যায়

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.