फ़्रेगमेंट इंजेक्शन के जाेखिम की संभावना को ठीक करने का तरीका

यह जानकारी उन डेवलपर के लिए है जो ऐप्लिकेशन में PreferenceActivity क्लास काे असुरक्षित तरीके से इस्तेमाल कर रहे हैं. इससे ऐप्लिकेशन पर फ़्रेगमेंट इंजेक्शन का जाेखिम बना रहता है. ऐसा करने से, नुकसान पहुंचाने वाले बाहरी ऐप्लिकेशन को ऐसे फ़्रेगमेंट लोड करने की अनुमति मिल जाती है जाे सिर्फ़ निजी होने चाहिए.

क्या हो रहा है

1 मार्च, 2017 से, Google Play ऐसे सभी नए ऐप्लिकेशन या अपडेट को प्रकाशित होने से रोक दिया है जिसमें PreferenceActivity की क्लास से फ़्रेगमेंट इंजेक्शन का जाेखिम हो सकता है. कृपया अपने Play कंसोल में सूचना देखें. आपके Play कंसोल में दिखाई गई समय सीमा के बाद, जिन ऐप्लिकेशन की सुरक्षा में जोखिम की संभावनाओं को ठीक नहीं किया गया है उन्हें Google Play से हटाया जा सकता है.

यह कार्रवाई करें

  1. अपने Play कंसोल में साइन इन करें और 'चेतावनियां' सेक्शन पर जाकर देखें कि किन ऐप्लिकेशन पर असर हुआ है और इन समस्याओं को ठीक करने की आखिरी तारीखें क्या हैं.
  2. आपके जिन ऐप्लिकेशन पर असर हुआ है उन्हें अपडेट करें और जोखिम की संभावना को ठीक करें.
  3. आपके जिन ऐप्लिकेशन पर असर हुआ है उनके अपडेट किए गए वर्शन सबमिट करें.

दोबारा सबमिट करने पर, आपके ऐप्लिकेशन की फिर से समीक्षा की जाएगी. इस प्रक्रिया में कई घंटे लग सकते हैं. अगर ऐप्लिकेशन समीक्षा में पास हो जाता है और उसे प्रकाशित कर दिया जाता है, तो फिर और कुछ करने की ज़रूरत नहीं है. अगर ऐप्लिकेशन समीक्षा में फ़ेल हो जाता है, तो ऐप्लिकेशन का नया वर्शन प्रकाशित नहीं किया जाएगा और आपको ईमेल से सूचना मिल जाएगी.

कुछ और जानकारी

जहां भी हो सके, अपने मेनिफ़ेस्ट में PreferenceActivity के लिए exported=false सेट करें. इससे बाहरी ऐप्लिकेशन इस क्लास में इंटेंट नहीं भेज पाएंगे.

अगर खतरे वाली PreferenceActivity को बाहरी ऐप्लिकेशन में एक्सपाेर्ट करना ज़रूरी हो, तो फिर यह देखें कि क्लास से सुरक्षा काे जाेखिम क्यों है और ज़रूरी कार्रवाई करें. यहां दो बातें हाे सकती हैं:

  1. isValidFragment का गलत तरीके से इस्तेमाल:

देखें कि क्या जाेखिम वाली क्लास में isValidFragment शामिल है या इसमें isValidFragment का इस्तेमाल किया गया है जो सभी कोड पाथ के लिए नतीजे को सही दिखाता है. अगर यह सही आता है, तो फिर मंज़ूरी पा चुके फ़्रेगमेंट क्लास की सूची देखने के लिए क्लास को अपडेट करें. उदाहरण के लिए: अगर PreferenceActivity को MyFragment क्लास के अलावा किसी दूसरे फ़्रेगमेंट काे मंज़ूरी नहीं देनी चाहिए, तो फिर नीचे दिए गए तरीके से जाँच करें:

         public boolean isValidFragment(String fragmentName) {
            return MyFragment.class.getName().equals(fragmentName);

         }

  1. targetSdkVersion 19 से कम है और वह isValidFragment का इस्तेमाल नहीं करता है:

अगर ऐप्लिकेशन इस समय मेनिफ़ेस्ट में अपने targetSdkVersion को 19 से कम के मान पर सेट करता है और जाेखिम वाली क्लास में isValidFragment का इस्तेमाल नहीं किया गया है, तो फिर सुरक्षा के जाेखिम की वजह PreferenceActivity है.

इस समस्या काे ठीक करने के लिए, डेवलपर को targetSdkVersion को 19 या उससे ज़्यादा में अपडेट करना चाहिए. इसके अलावा, अगर targetSdkVersion को अपडेट नहीं किया जा सकता हो, तो फिर डेवलपर को ValidFragment को 1) में बताए गए तरीके से इस्तेमाल करना चाहिए ताकि मंज़ूरी पा चुके फ़्रेगमेंट क्लास की जाँच की जा सके.

ऐप्लिकेशन डेवलपर वितरण अनुबंध और सामग्री नीति के हिसाब से सही होने चाहिए. 

हम मदद के लिए मौजूद हैं

अगर आप जाेखिम की संभावना के बारे में तकनीकी सवाल पूछना चाहते हैं, तो आप Stack Overflow पर पोस्ट कर सकते हैं और “android-security” टैग का इस्तेमाल कर सकते हैं. इस समस्या को ठीक करने के लिए आपको जो कदम उठाने हैं उनके बारे में ज़्यादा जानकारी के लिए, आप हमारी डेवलपर सहायता टीम से संपर्क कर सकते हैं.

false
मुख्य मेन्यू
8058849177318358522
true
खोज मदद केंद्र
true
true
true
true
true
5016068
false
false