अपनी वेबसाइट के लिए एचटीटीपीएस का इस्तेमाल करना, अपनी साइट और उपयोगकर्ताओं को हमलों से बचाने के लिए एक अहम कदम है. हालांकि, मिक्सड कॉन्टेंट की वजह से यह सुरक्षा बेकार हो सकती है. ब्राउज़र, असुरक्षित मिक्स कॉन्टेंट को ब्लॉक कर देंगे. इसके बारे में मिक्स कॉन्टेंट क्या है? लेख में बताया गया है
इस गाइड में, हम आपको मिली-जुली सामग्री की मौजूदा समस्याओं को ठीक करने और नई समस्याओं को होने से रोकने के लिए तकनीकों और टूल के बारे में बताएंगे.
आपकी साइट पर जाकर, मिक्स कॉन्टेंट ढूंढना
Google Chrome में किसी एचटीटीपीएस पेज पर जाने पर, ब्राउज़र आपको JavaScript कंसोल में गड़बड़ियों और चेतावनियों के तौर पर, मिले-जुले कॉन्टेंट के बारे में सूचना देता है.
मिक्स्ड कॉन्टेंट क्या है? में, आपको कई उदाहरण मिल सकते हैं. साथ ही, यह देखा जा सकता है कि Chrome DevTools में समस्याओं की शिकायत कैसे की जाती है.
पैसिव मिक्स्ड कॉन्टेंट के उदाहरण में, ये चेतावनियां दी गई हैं.
अगर ब्राउज़र को https यूआरएल पर कॉन्टेंट मिल जाता है, तो वह उसे अपने-आप अपग्रेड कर देता है. इसके बाद, एक मैसेज दिखाता है.
ऐक्टिव मिक्स कॉन्टेंट को ब्लॉक कर दिया जाता है और चेतावनी दिखाई जाती है.
अगर आपको अपनी साइट के 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.
असुरक्षित अनुरोधों को अपग्रेड करना
ब्राउज़र, असुरक्षित अनुरोधों को अपग्रेड और ब्लॉक करने लगे हैं. इन ऐसेट को अपने-आप अपग्रेड करने या ब्लॉक करने के लिए, सीएसपी डायरेक्टिव का इस्तेमाल किया जा सकता है.
upgrade-insecure-requests सीएसपी डायरेक्टिव, ब्राउज़र को नेटवर्क का अनुरोध करने से पहले असुरक्षित यूआरएल को अपग्रेड करने का निर्देश देता है.
उदाहरण के लिए, अगर किसी पेज में एचटीटीपी यूआरएल वाला इमेज टैग शामिल है, जैसे कि
<img src="https://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> दस्तावेज़ों में कैस्केड होता है. इससे यह पक्का होता है कि पूरा पेज सुरक्षित है.