यह जानकारी ऐसे डेवलपर के लिए तैयार की गई है जिनके ऐप्लिकेशन में इंटेंट स्कीम हाइजैकिंग के जोखिम की संभावना मौजूद है.
क्या हो रहा है
आपके एक या ज़्यादा ऐप्लिकेशन में इंटेंट स्कीम हाइजैकिंग की ऐसी समस्या मौजूद है जो ऐप्लिकेशन के निजी घटक एक्सेस करने के लिए गलत इरादों वाले नेटवर्क और वेबसाइटों को मंज़ूरी दे सकती है.कृपया अपने Play कंसोल में सूचना देखें. आपके Play कंसोल में दिख रही आखिरी तारीख के बाद, Google Play से ऐसे ऐप्लिकेशन हटाए जा सकते हैं जिनमें सुरक्षा से जुड़ी गड़बड़ियां शामिल हैं.
कार्रवाई करना ज़रूरी है
-
अपने Play कंसोल में साइन इन करें और 'चेतावनियां' सेक्शन पर जाकर देखें कि किन ऐप्लिकेशन पर असर हुआ है और इन समस्याओं को ठीक करने की आखिरी तारीखें क्या हैं.
-
नीचे हाइलाइट किए गए चरणों के इस्तेमाल से अपने वे ऐप्लिकेशन अपडेट करें जिन पर असर हुआ है.
-
आपके जिन ऐप्लिकेशन पर असर हुआ है उनके अपडेट किए गए वर्शन सबमिट करें.
फिर से सबमिट करने के बाद, आपके ऐप्लिकेशन की दोबारा समीक्षा की जाएगी. इस प्रक्रिया में कई घंटे लग सकते हैं. अगर ऐप्लिकेशन समीक्षा में पास हो जाता है और उसे प्रकाशित कर दिया जाता है, तो फिर और कुछ करने की ज़रूरत नहीं है. अगर ऐप्लिकेशन समीक्षा में फ़ेल हो जाता है, तो ऐप्लिकेशन का नया वर्शन प्रकाशित नहीं किया जाएगा और आपको ईमेल से इसकी सूचना मिल जाएगी.
कुछ और जानकारी
गैर-भरोसेमंद वेब सामग्री पर जाने वाले WebViews, intent:// लिंक को Intent.parseUri का इस्तेमाल करके पार्स करते हैं और उन इंटेंट को startActivity का इस्तेमाल करके भेजते हैं, उनके साथ इंटेंट-स्कीम हाइजैकिंग होने का जोखिम बना रहता है. ये WebViews नुकसान पहुंचाने वाली वेब सामग्री के धोखे में आकर निजी ऐप्लिकेशन घटकों को मनचाहे इंटेंट भेज सकते हैं. इसकी वजह से ऐप्लिकेशन में निजी डेटा की चोरी जैसे जोखिम खड़े हो सकते हैं, जो ऐसे घटकों में फेरबदल कर देते हैं. ध्यान दें कि गैर-भरोसेमंद वेब सामग्री में HTTP पर लोड किए गए भरोसेमंद डोमेन की सामग्री शामिल होती है.
हम आपको आगे बताए गए किसी एक तरीके का इस्तेमाल करके यह जोखिम रोकने का सुझाव देते हैं:
पहला विकल्प: पक्का करें कि WebViews मनचाहे तरीके से इंटेंट नहीं भेज सकते हैं
ऐप्लिकेशन इस कोड का इस्तेमाल करके ऐसे इंटेंट में रुकावट डाल सकते हैं जो Intent.parseUri से बने हैं ताकि उन्हें ब्राउज़ करने लायक इंटेंट फ़िल्टर वाले घटकों के पास Implicit Intents के रूप में ही भेजा जाए:
// convert Intent scheme URL to Intent object
Intent intent = Intent.parseUri(url);
// forbid launching activities without BROWSABLE category
intent.addCategory("android.intent.category.BROWSABLE");
// forbid explicit call
intent.setComponent(null);
// forbid Intent with selector Intent
intent.setSelector(null);
// start the activity by the Intent
view.getContext().startActivity(intent, -1);
दूसरा विकल्प: पक्का करें कि जिन WebViews पर असर हुआ है, वे गैर-भरोसेमंद वेब सामग्री लोड न करें
अगर कोई WebView मनचाहे तरीके से intent://
स्कीम के यूआरएल पार्स करना चाहता है, तो कृपया पक्का करें कि वह गैर-भरोसेमंद वेब सामग्री लोड न करे. गैर-भरोसेमंद वेब सामग्री में ऐसे कनेक्शन पर लोड की गई वेब सामग्री शामिल है जिसे सुरक्षित नहीं किया गया है. डेवलपर अपने मेनिफ़ेस्ट में android:usesCleartextTraffic
को गलत पर सेट कर सकते हैं या ऐसा Network Security Config सेट कर सकते हैं जो एचटीटीपी ट्रैफ़िक की मंज़ूरी नहीं देता. इसके अलावा, वे यह पक्का कर सकते हैं कि जिस भी WebViews पर असर हुआ है वह loadUrl
के ज़रिए एचटीटीपी स्कीम वाला कोई भी यूआरएल लोड न करे.
हम डेवलपर को यह पक्का कर लेने का सुझाव देते है कि जिन WebViews पर असर हुआ है, वे बिना पाबंदी वाले ऐसे यूआरएल लोड न करें जो गैर-भरोसेमंद स्रोतों से मिले हों (जैसे कि गैर-भरोसेमंद इंटेंट से मिले यूआरएल).
हम मदद के लिए मौजूद हैं
अगर आप जोखिम की संभावना से जुड़े तकनीकी सवाल पूछना चाहते हैं, तो आप Stack Overflow पर पोस्ट कर सकते हैं और “android-security” टैग का इस्तेमाल कर सकते हैं. इस समस्या को हल करने के लिए उठाए जाने वाले कदमों पर ज़्यादा जानकारी के लिए, आप हमारी डेवलपर सहायता टीम से संपर्क कर सकते हैं.