अपनी साइट और उपयोगकर्ताओं को हमले से बचाने के लिए, अपनी वेबसाइट के लिए एचटीटीपीएस का इस्तेमाल करना ज़रूरी है. लेकिन मिला-जुला कॉन्टेंट होने से वह सुरक्षा बेकार हो सकती है. ऐसे मिले-जुले असुरक्षित कॉन्टेंट को ब्राउज़र ब्लॉक कर देंगे जिसकी जानकारी ब्राउज़र में दी गई है. इसकी जानकारी, मिले-जुले कॉन्टेंट क्या है? में दी गई है
इस गाइड में हम मिले-जुले कॉन्टेंट की मौजूदा समस्याओं को ठीक करने के लिए, तकनीकों और टूल के बारे में बताएंगे साथ ही, नई सूचनाएं भी नहीं लाई जा सकतीं.
आपकी साइट पर जाकर मिले-जुले कॉन्टेंट का पता लगाना
Google Chrome में किसी एचटीटीपीएस पेज को विज़िट करते समय, ब्राउज़र आपको JavaScript कंसोल में मिले-जुले कॉन्टेंट को गड़बड़ियों और चेतावनियों के तौर पर अलर्ट करता है.
मिले-जुले कॉन्टेंट क्या है? सेक्शन में, आपको कई उदाहरण मिल सकते हैं. साथ ही, यह भी जाना जा सकता है कि Chrome DevTools में समस्याओं को कैसे रिपोर्ट किया जाता है.
पैसिव मिक्स कॉन्टेंट के उदाहरण में ये चेतावनियां दी जाएंगी.
अगर ब्राउज़र https
के यूआरएल पर कॉन्टेंट ढूंढ पाता है, तो वह उसे अपने-आप अपग्रेड कर देता है. इसके बाद, एक मैसेज दिखता है.
अगर मिला-जुला ऐक्टिव कॉन्टेंट है, तो उसे ब्लॉक कर दिया गया है और एक चेतावनी दिखेगी.
अगर आपको अपनी साइट पर http://
यूआरएल के लिए इस तरह की चेतावनियां मिलती हैं, तो
आपको अपनी साइट के सोर्स में जाकर, उन्हें ठीक करना होगा.
इन यूआरएल को ठीक करते समय इस्तेमाल करने के लिए, उनके साथ-साथ उस पेज की सूची बनाना भी फ़ायदेमंद होता है जिस पर आपको ये यूआरएल मिले.
अपनी साइट में मिला-जुला कॉन्टेंट ढूंढना
मिले-जुले कॉन्टेंट को सीधे अपने सोर्स कोड में खोजा जा सकता है.
अपने सोर्स में http://
खोजें और वे टैग ढूंढें जिनमें एचटीटीपी यूआरएल एट्रिब्यूट शामिल हों.
ध्यान दें कि ऐंकर टैग (<a>
) के href
एट्रिब्यूट में http://
का होना ज़रूरी है
अक्सर, मिले-जुले कॉन्टेंट की समस्या नहीं होती. हालांकि, कुछ अहम अपवादों के बारे में बाद में चर्चा की गई है.
अगर आपकी साइट को कॉन्टेंट मैनेजमेंट सिस्टम का इस्तेमाल करके पब्लिश किया गया है, हो सकता है कि पेज पब्लिश होने पर, असुरक्षित यूआरएल के लिंक डाल दिए जाएं. उदाहरण के लिए, इमेज से मिलते-जुलते पाथ के बजाय, पूरे यूआरएल के साथ शामिल किया जा सकता है. आपको कॉन्टेंट मैनेजमेंट सिस्टम में जाकर, इन्हें ढूंढकर ठीक करना होगा.
मिले-जुले कॉन्टेंट को ठीक करना
अपनी साइट के सोर्स में मिक्स कॉन्टेंट मिलने के बाद, इस समस्या को ठीक करने के लिए, यहां दिया गया तरीका अपनाएं.
अगर आपको कंसोल मैसेज मिलता है कि संसाधन अनुरोध अपने-आप एचटीटीपी से एचटीटीपीएस पर अपग्रेड हो गया है, तो
तो आपके पास, अपने कोड में मौजूद संसाधन के http://
यूआरएल को सुरक्षित तरीके से https://
में बदलने का विकल्प है.
ब्राउज़र के यूआरएल बार में, http://
को https://
में बदलकर, यह भी देखा जा सकता है कि कोई संसाधन सुरक्षित तरीके से उपलब्ध है या नहीं
और एक ब्राउज़र टैब में URL को खोलने का प्रयास कर रहा है.
अगर https://
के ज़रिए संसाधन उपलब्ध नहीं हैं, तो आपको इनमें से कोई एक विकल्प आज़माना चाहिए:
- अगर कोई दूसरा होस्ट उपलब्ध है, तो उसका संसाधन शामिल करें.
- अगर आपके पास कानूनी तौर पर अनुमति है, तो कॉन्टेंट को सीधे अपनी साइट पर डाउनलोड और होस्ट करें.
- उस संसाधन को अपनी साइट से पूरी तरह बाहर कर दें.
समस्या को ठीक करने के बाद, वह पेज देखें जहां आपको मूल रूप से गड़बड़ी मिली थी और पुष्टि करें कि गड़बड़ी अब नहीं दिखती.
गैर-मानक टैग के इस्तेमाल से सावधान रहें
अपनी साइट पर गैर-मानक टैग के उपयोग के प्रति सावधान रहें.
उदाहरण के लिए, ऐंकर (<a>
) टैग के यूआरएल की वजह से, मिले-जुले कॉन्टेंट से जुड़ी गड़बड़ियां नहीं होती हैं.
क्योंकि वे ब्राउज़र को किसी नए पेज पर ले जाते हैं.
इसका मतलब है कि उन्हें आम तौर पर ठीक करने की ज़रूरत नहीं होती.
हालांकि, इमेज गैलरी की कुछ स्क्रिप्ट, <a>
के काम करने के तरीके को बदल देती हैं
टैग करें और href
एट्रिब्यूट में बताए गए एचटीटीपी संसाधन को पेज पर लाइटबॉक्स डिसप्ले में लोड करें,
जिसकी वजह से एक मिक्स कॉन्टेंट की समस्या हो रही है.
मिले-जुले कॉन्टेंट को बड़े पैमाने पर हैंडल करना
ऊपर बताए गए मैन्युअल तरीके छोटी वेबसाइटों के लिए अच्छी तरह काम करते हैं; बड़ी वेबसाइटों या ऐसी साइटों के लिए जिनके पास कई अलग-अलग डेवलपमेंट टीमें हों, लोड किए जा रहे हर कॉन्टेंट का ट्रैक रखना मुश्किल हो सकता है. इस टास्क में मदद करने के लिए, कॉन्टेंट की सुरक्षा के बारे में नीति का इस्तेमाल किया जा सकता है ब्राउज़र को यह निर्देश देना होगा कि वह आपको मिले-जुले कॉन्टेंट के बारे में सूचना दे. साथ ही, यह पक्का करेगा कि आपके पेज कभी भी असुरक्षित रिसॉर्स को अचानक लोड न करें.
कॉन्टेंट की सुरक्षा के लिए नीति
कॉन्टेंट की सुरक्षा के बारे में नीति (सीएसपी) एक मल्टीपर्पज़ ब्राउज़र सुविधा है, जिसका इस्तेमाल बड़े पैमाने पर मिले-जुले कॉन्टेंट को मैनेज करने के लिए किया जा सकता है. सीएसपी रिपोर्टिंग के तरीके का इस्तेमाल, आपकी साइट पर मिले-जुले कॉन्टेंट को ट्रैक करने के लिए किया जा सकता है. और मिले-जुले कॉन्टेंट को अपग्रेड या ब्लॉक करके उपयोगकर्ताओं की सुरक्षा के लिए नीति उल्लंघन ठीक करने के तरीके (एनफ़ोर्समेंट) की नीतियां उपलब्ध कराना.
किसी पेज के लिए इन सुविधाओं को चालू किया जा सकता है. इसके लिए:
आपके सर्वर से भेजे गए जवाब में Content-Security-Policy
या Content-Security-Policy-Report-Only
हेडर.
साथ ही, Content-Security-Policy
को सेट किया जा सकता है
अपने पेज के <head>
सेक्शन में <meta>
टैग का इस्तेमाल करके (हालांकि, नहीं 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 या मिले-जुले कॉन्टेंट को स्कैन करना.
असुरक्षित अनुरोधों को अपग्रेड करना
ब्राउज़र ने असुरक्षित अनुरोधों को अपग्रेड और ब्लॉक करना शुरू कर दिया है. सीएसपी के निर्देशों का इस्तेमाल करके, इन ऐसेट को अपने-आप अपग्रेड या ब्लॉक किया जा सकता है.
upgrade-insecure-requests
सीएसपी डायरेक्टिव के ज़रिए, ब्राउज़र को नेटवर्क के अनुरोध करने से पहले, असुरक्षित यूआरएल को अपग्रेड करने का निर्देश दिया जाता है.
उदाहरण के लिए, अगर किसी पेज में HTTP URL के साथ कोई इमेज टैग शामिल है, जैसे कि
<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>
दस्तावेज़ों में लागू होता है,
यह पक्का किया जा सकता है कि पूरा पेज सुरक्षित है.