'JavaScript इंटरफ़ेस इंजेक्शन' के जोखिम के लिए उपचार

यह जानकारी ऐसे डेवलपर के लिए तैयार की गई है जिनके ऐप्लिकेशन में 'JavaScript इंटरफ़ेस इंजेक्शन' का जोखिम मौजूद है.

क्या हो रहा है

कृपया अपने Play कंसोल पर आई सूचना देखें. आपके Play कंसोल में दिखाई दे रही आखिरी तारीख के बाद, Google Play से ऐसे ऐप्लिकेशन हटाए जा सकते हैं जिनमें सुरक्षा जोखिम में हो सकती है.

कार्रवाई करना ज़रूरी है​

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

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

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

'JavaScript इंटरफ़ेस इंजेक्शन' के लिए ऐसे WebViews जोखिम भरे हो सकते हैं जो addJavascriptInterface से JavaScript कोड में ऐप्लिकेशन लेवल के ऑब्जेक्ट दिखाते हैं. साथ ही, ऐसी वेब सामग्री लोड करते हैं जिस पर भरोसा नहीं किया जा सकता. गैर-भरोसेमंद सामग्री दूसरों की जानकारी में आ चुके ऐसे किसी भी ऑब्जेक्ट की विधियां निष्पादित कर सकती है जो @JavascriptInterface के साथ टैग किए हुए होते हैं, इसकी वजह से डेटा लीक हो जाता है, डेटा खराब हो जाता है या यहां तक कि कोड को मनचाहे तरीके से काम में भी लिया सकता है.

हमारा सुझाव है कि आप आगे बताए गए किसी एक तरीके का इस्तेमाल करके इस जोखिम को रोकें:

विकल्प 1: पक्का करें कि WebViews, 'JavaScript इंटरफ़ेस' में ऑब्जेक्ट न जोड़ें

पक्का करें कि किसी भी WebView के 'JavaScript इंटरफ़ेस' में गैर-भरोसेमंद वेब सामग्री लोड करने वाला कोई ऑब्जेक्ट न जोड़ा गया हो. यह काम आप दो तरीकों से कर सकते हैं:

 

पक्का करें कि 'JavaScript इंटरफ़ेस' में कॉल टू addJavascriptInterface के ज़रिए कभी कोई ऑब्जेक्ट नहीं जोड़ा गया है.

  1. WebView से ऐसी सामग्री जिस पर भरोसा नहीं किया जा सकता, लोड होने से पहले, removeJavascriptInterface के ज़रिए shouldInterceptRequest में 'JavaScript इंटरफ़ेस' से ऑब्जेक्ट हटाएं.

विकल्प 2: पक्का करें कि WebViews गैर-भरोसेमंद सामग्री लोड न करें

अगर आपके ऐप्लिकेशन को किसी WebView के 'JavaScript इंटरफ़ेस' के लिए ऑब्जेक्ट दिखाना है, तो पक्का करें कि WebView किसी ऐसे कनेक्शन पर वेब सामग्री लोड नहीं करता है जिसे सुरक्षित नहीं किया गया है. आप अपने Manifest में android:usesCleartextTraffic को गलत पर सेट कर सकते हैं या ऐसा Network Security Config सेट कर सकते हैं जो HTTP ट्रैफ़िक की मंज़ूरी नहीं देता हो. इसके अलावा, आप यह पक्का कर सकते हैं कि कोई भी प्रभावित WebViews, loadUrl के ज़रिए HTTP स्कीम वाला कोई URL लोड नहीं करे.


पक्का करें कि JavaScript इंटरफ़ेस' वाले WebViews गैर-भरोसेमंद स्रोतों से मिले अनचेक किए गए यूआरएल लोड न करे (जैसे कि, गैर-भरोसेमंद Intents से मिलने वाले यूआरएल).

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

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

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