मिले-जुले कॉन्टेंट की समस्या ठीक करना

अपनी वेबसाइट के लिए एचटीटीपीएस का इस्तेमाल करना, आपकी साइट और उपयोगकर्ताओं को हमलों से बचाने का एक अहम तरीका है. हालांकि, मिक्स किए गए कॉन्टेंट की वजह से, यह सुरक्षा काम नहीं करती. ब्राउज़र, ज़्यादा से ज़्यादा असुरक्षित मिक्स्ड कॉन्टेंट को ब्लॉक करेंगे. इसके बारे में मिक्स्ड कॉन्टेंट क्या होता है? लेख में बताया गया है.

इस गाइड में, हम मिक्स किए गए कॉन्टेंट से जुड़ी मौजूदा समस्याओं को ठीक करने और नई समस्याओं को रोकने के लिए, तकनीकों और टूल के बारे में बताएंगे.

आपकी साइट पर जाकर मिले-जुले कॉन्टेंट का पता लगाना

Google Chrome में किसी एचटीटीपीएस पेज पर जाने पर, ब्राउज़र आपको JavaScript कंसोल में गड़बड़ियों और चेतावनियों के तौर पर, मिक्स किए गए कॉन्टेंट के बारे में सूचना देता है.

मिक्स किए गए कॉन्टेंट से क्या मतलब है? लेख में, आपको कई उदाहरण मिल सकते हैं. साथ ही, यह भी पता चल सकता है कि Chrome DevTools में समस्याओं की रिपोर्ट कैसे की जाती है.

पैसिव मिक्स्ड कॉन्टेंट के उदाहरण में, ये चेतावनियां दिखेंगी. अगर ब्राउज़र को कॉन्टेंट https यूआरएल पर मिल जाता है, तो वह उसे अपने-आप अपग्रेड कर देता है. इसके बाद, एक मैसेज दिखाता है.

Chrome DevTools में, मिक्स किए गए कॉन्टेंट का पता चलने और उसे अपग्रेड किए जाने पर दिखने वाली चेतावनियां

ऐक्टिव मिक्स्ड कॉन्टेंट को ब्लॉक कर दिया जाता है और एक चेतावनी दिखती है.

Chrome DevTools में, ऐक्टिव मिक्स्ड कॉन्टेंट को ब्लॉक किए जाने पर दिखने वाली चेतावनियां दिखाई गई हैं

अगर आपको अपनी साइट पर मौजूद http:// यूआरएल के लिए इस तरह की चेतावनियां मिलती हैं, तो आपको अपनी साइट के सोर्स में जाकर इन्हें ठीक करना होगा. इन यूआरएल की सूची बना लें. साथ ही, उस पेज का नाम भी लिख लें जिस पर आपको ये यूआरएल मिले हैं. इससे आपको इन यूआरएल को ठीक करने में मदद मिलेगी.

अपनी साइट पर मिक्स कॉन्टेंट ढूंढना

अपने सोर्स कोड में सीधे तौर पर मिक्स कॉन्टेंट खोजा जा सकता है. अपने सोर्स में http:// खोजें और ऐसे टैग ढूंढें जिनमें एचटीटीपी यूआरएल एट्रिब्यूट शामिल हों. ध्यान दें कि ऐंकर टैग (<a>) के href एट्रिब्यूट में http:// होने का मतलब यह नहीं है कि यह मिक्स्ड कॉन्टेंट की समस्या है. हालांकि, कुछ खास मामलों में ऐसा हो सकता है. इनके बारे में बाद में बताया गया है.

अगर आपकी साइट को कॉन्टेंट मैनेजमेंट सिस्टम का इस्तेमाल करके पब्लिश किया गया है, तो ऐसा हो सकता है कि पेजों को पब्लिश करते समय, असुरक्षित यूआरएल के लिंक डाले गए हों. उदाहरण के लिए, इमेज को रिलेटिव पाथ के बजाय पूरे यूआरएल के साथ शामिल किया जा सकता है. आपको सीएमएस कॉन्टेंट में इन समस्याओं को ढूंढकर ठीक करना होगा.

मिले-जुले कॉन्टेंट की समस्या ठीक करना

अपनी साइट के सोर्स में मिक्स कॉन्टेंट मिलने के बाद, उसे ठीक करने के लिए यह तरीका अपनाएं.

अगर आपको कंसोल में यह मैसेज मिलता है कि संसाधन के अनुरोध को एचटीटीपी से एचटीटीपीएस में अपने-आप अपग्रेड कर दिया गया है, तो अपने कोड में संसाधन के लिए http:// यूआरएल को https:// में बदला जा सकता है. यह भी देखा जा सकता है कि कोई संसाधन सुरक्षित तरीके से उपलब्ध है या नहीं. इसके लिए, ब्राउज़र के यूआरएल बार में http:// को https:// में बदलें. इसके बाद, ब्राउज़र टैब में यूआरएल खोलने की कोशिश करें.

अगर संसाधन https:// के ज़रिए उपलब्ध नहीं है, तो इनमें से कोई एक विकल्प चुनें:

  • अगर कोई दूसरा होस्ट उपलब्ध है, तो उससे संसाधन शामिल करें.
  • अगर आपको कानूनी तौर पर ऐसा करने की अनुमति है, तो कॉन्टेंट को सीधे अपनी साइट पर डाउनलोड और होस्ट करें.
  • अपनी साइट से संसाधन को पूरी तरह से हटाएं.

समस्या ठीक करने के बाद, उस पेज को देखें जहां आपको गड़बड़ी मिली थी. साथ ही, पुष्टि करें कि अब वह गड़बड़ी नहीं दिख रही है.

टैग के स्टैंडर्ड के हिसाब से इस्तेमाल न किए जाने से बचें

अपनी साइट पर, स्टैंडर्ड टैग के अलावा किसी और टैग का इस्तेमाल न करें. उदाहरण के लिए, ऐंकर (<a>) टैग वाले यूआरएल से, मिक्स किए गए कॉन्टेंट की गड़बड़ियां नहीं होती हैं. इसकी वजह यह है कि इनसे ब्राउज़र, नए पेज पर नेविगेट करता है. इसका मतलब है कि आम तौर पर, इन्हें ठीक करने की ज़रूरत नहीं होती. हालांकि, कुछ इमेज गैलरी स्क्रिप्ट, <a> टैग की सुविधा को बदल देती हैं. साथ ही, href एट्रिब्यूट से तय किए गए एचटीटीपी रिसॉर्स को पेज पर लाइटबॉक्स डिसप्ले में लोड करती हैं. इससे मिले-जुले कॉन्टेंट की समस्या होती है.

बड़े पैमाने पर मिले-जुले कॉन्टेंट को मैनेज करना

ऊपर दिए गए मैन्युअल तरीके, छोटी वेबसाइटों के लिए बेहतर तरीके से काम करते हैं; हालांकि, बड़ी वेबसाइटों या अलग-अलग डेवलपमेंट टीम वाली साइटों के लिए, लोड किए जा रहे सभी कॉन्टेंट को ट्रैक करना मुश्किल हो सकता है. इस काम में आपकी मदद करने के लिए, कॉन्टेंट की सुरक्षा से जुड़ी नीति का इस्तेमाल किया जा सकता है. इससे ब्राउज़र को यह निर्देश दिया जा सकता है कि वह आपको मिक्स किए गए कॉन्टेंट के बारे में सूचना दे. साथ ही, यह पक्का किया जा सकता है कि आपके पेज पर कभी भी असुरक्षित रिसॉर्स लोड न हों.

कॉन्टेंट की सुरक्षा के बारे में नीति

कॉन्टेंट की सुरक्षा के बारे में नीति (सीएसपी), ब्राउज़र की एक ऐसी सुविधा है जिसका इस्तेमाल कई कामों के लिए किया जा सकता है. इसकी मदद से, बड़े पैमाने पर अलग-अलग तरह के कॉन्टेंट को मैनेज किया जा सकता है. सीएसपी रिपोर्टिंग मेकेनिज़्म का इस्तेमाल, आपकी साइट पर मौजूद मिक्स्ड कॉन्टेंट को ट्रैक करने के लिए किया जा सकता है. साथ ही, उपयोगकर्ताओं को सुरक्षित रखने के लिए नीतियां लागू की जा सकती हैं. इसके लिए, मिक्स्ड कॉन्टेंट को अपग्रेड या ब्लॉक किया जा सकता है.

किसी पेज के लिए इन सुविधाओं को चालू किया जा सकता है. इसके लिए, आपको अपने सर्वर से भेजे गए रिस्पॉन्स में Content-Security-Policy या Content-Security-Policy-Report-Only हेडर शामिल करना होगा. इसके अलावा, अपने पेज के <head> सेक्शन में <meta> टैग का इस्तेमाल करके, Content-Security-Policy सेट किया जा सकता है. हालांकि, नहीं Content-Security-Policy-Report-Only सेट किया जा सकता है.

कॉन्टेंट की सुरक्षा के बारे में नीति का इस्तेमाल करके, मिक्स कॉन्टेंट ढूंढना

अपनी साइट पर मिले-जुले कॉन्टेंट की रिपोर्ट इकट्ठा करने के लिए, कॉन्टेंट की सुरक्षा के बारे में नीति का इस्तेमाल किया जा सकता है. इस सुविधा को चालू करने के लिए, अपनी साइट के रिस्पॉन्स हेडर के तौर पर Content-Security-Policy-Report-Only डायरेक्टिव जोड़कर इसे सेट करें.

रिस्पॉन्स हेडर:

Content-Security-Policy-Report-Only: default-src https: 'unsafe-inline' 'unsafe-eval'; report-uri https://example.com/reportingEndpoint

जब भी कोई व्यक्ति आपकी साइट के किसी पेज पर जाता है, तो उसका ब्राउज़र, कॉन्टेंट सुरक्षा नीति का उल्लंघन करने वाली किसी भी चीज़ के बारे में JSON फ़ॉर्मैट में रिपोर्ट भेजता है. ये रिपोर्ट https://example.com/reportingEndpoint को भेजी जाती हैं. इस मामले में, जब भी कोई सब-रिसोर्स एचटीटीपी पर लोड होता है, तब एक रिपोर्ट भेजी जाती है. इन रिपोर्ट में, उस पेज का यूआरएल शामिल होता है जहां नीति का उल्लंघन हुआ है. साथ ही, इसमें उस सब-रिसोर्स का यूआरएल भी शामिल होता है जिसने नीति का उल्लंघन किया है. अगर आपने रिपोर्टिंग एंडपॉइंट को इन रिपोर्ट को लॉग करने के लिए कॉन्फ़िगर किया है, तो आपको अपनी साइट पर मौजूद मिक्स किए गए कॉन्टेंट को ट्रैक करने के लिए, हर पेज पर जाने की ज़रूरत नहीं है.

इसके दो अपवाद हैं:

  • लोगों को आपके पेज पर ऐसे ब्राउज़र से जाना होगा जो सीएसएपी हेडर को समझता हो. यह बात ज़्यादातर मॉडर्न ब्राउज़र पर लागू होती है.
  • आपको सिर्फ़ उन पेजों की रिपोर्ट मिलती हैं जिन पर आपके उपयोगकर्ता जाते हैं. इसलिए, अगर आपकी साइट पर ऐसे पेज हैं जिन पर ज़्यादा ट्रैफ़िक नहीं आता है, तो हो सकता है कि आपको पूरी साइट की रिपोर्ट मिलने में कुछ समय लगे.

कॉन्टेंट सुरक्षा नीति गाइड में ज़्यादा जानकारी और एक उदाहरण एंडपॉइंट दिया गया है.

सीएसएपी का इस्तेमाल करके रिपोर्ट करने के अन्य विकल्प

अगर आपकी साइट को Blogger जैसे किसी प्लैटफ़ॉर्म पर होस्ट किया गया है, तो हो सकता है कि आपके पास हेडर में बदलाव करने और सीएसपी जोड़ने का ऐक्सेस न हो. इसके बजाय, वेबसाइट क्रॉलर का इस्तेमाल करके अपनी साइट पर मौजूद समस्याओं का पता लगाया जा सकता है. जैसे, HTTPSChecker या Mixed Content Scan.

असुरक्षित अनुरोधों को अपग्रेड करना

Browser Support

  • Chrome: 44.
  • Edge: 17.
  • Firefox: 48.
  • Safari: 10.1.

Source

ब्राउज़र, अपग्रेड करना और असुरक्षित अनुरोधों को ब्लॉक करना शुरू कर रहे हैं. इन ऐसेट को अपने-आप अपग्रेड करने या ब्लॉक करने के लिए, सीएसएपी डायरेक्टिव का इस्तेमाल किया जा सकता है.

upgrade-insecure-requests सीएसपी डायरेक्टिव, ब्राउज़र को नेटवर्क अनुरोध करने से पहले असुरक्षित यूआरएल को अपग्रेड करने का निर्देश देता है.

उदाहरण के लिए, अगर किसी पेज में एचटीटीपी यूआरएल वाला इमेज टैग मौजूद है, जैसे कि <img src="http://example.com/image.jpg">

इसके बजाय, ब्राउज़र https://example.com/image.jpg के लिए सुरक्षित अनुरोध करता है. इस तरह, उपयोगकर्ता को मिक्स किए गए कॉन्टेंट से बचाया जाता है.

इस सुविधा को चालू करने के लिए, इस डायरेक्टिव के साथ Content-Security-Policy हेडर भेजें:

Content-Security-Policy: upgrade-insecure-requests

इसके अलावा, दस्तावेज़ के <head> सेक्शन में <meta> एलिमेंट का इस्तेमाल करके, उसी निर्देश को इनलाइन एम्बेड किया जा सकता है:

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

ब्राउज़र के अपने-आप अपग्रेड होने की सुविधा की तरह ही, अगर संसाधन एचटीटीपीएस पर उपलब्ध नहीं है, तो अपग्रेड किया गया अनुरोध पूरा नहीं होगा और संसाधन लोड नहीं होगा. इससे आपके पेज की सुरक्षा बनी रहती है. upgrade-insecure-requests डायरेक्टिव, ब्राउज़र को अपने-आप अपग्रेड होने की सुविधा से आगे बढ़ेगा. यह उन अनुरोधों को अपग्रेड करने की कोशिश करेगा जिन्हें ब्राउज़र फ़िलहाल नहीं करता है.

upgrade-insecure-requests डायरेक्टिव, <iframe> दस्तावेज़ों में कैस्केड होता है. इससे यह पक्का होता है कि पूरा पेज सुरक्षित है.