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

जो-एल वैन बर्गन
जो-एल वैन बर्गन

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

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

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

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

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

इसकी दो चेतावनियां ये हैं:

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

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

सीएसपी की मदद से शिकायत करने के तरीके

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

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

ब्राउज़र सहायता

  • 44
  • 17
  • 48
  • 10.1

सोर्स

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

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

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

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

इस व्यवहार को इस डायरेक्टिव के साथ Content-Security-Policy हेडर भेजकर चालू किया जा सकता है:

Content-Security-Policy: upgrade-insecure-requests

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

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

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

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