पब्लिश करने की तारीख: 2 अप्रैल, 2025
लिंक पर क्लिक करने पर क्या होता है? यह पर्पल हो जाता है!
इंटरनेट के शुरुआती दिनों से ही, साइटें उन लिंक पर पसंद के मुताबिक स्टाइल लागू करने के लिए, सीएसएस :visited
सिलेक्टर पर निर्भर करती हैं जिन पर उपयोगकर्ताओं ने पहले क्लिक किया है. :visited
चुनने वाले टूल का इस्तेमाल करके, साइटें अपने उपयोगकर्ता अनुभव को बेहतर बना सकती हैं और अपने उपयोगकर्ताओं को वेब पर नेविगेट करने में मदद कर सकती हैं. हालांकि, समय के साथ, विज़िट किए गए लिंक को पसंद के मुताबिक बनाने की सुविधा बढ़ी है. साथ ही, सुरक्षा विशेषज्ञों को हमलों की संख्या में भी बढ़ोतरी दिखी है.
इन हमलों से यह पता चल सकता है कि उपयोगकर्ता ने किन लिंक पर विज़िट किया है. साथ ही, इनसे उसकी वेब ब्राउज़िंग गतिविधि की जानकारी भी लीक हो सकती है. सुरक्षा से जुड़ी यह समस्या, वेब पर 20 से ज़्यादा सालों से है. ब्राउज़र ने इतिहास का पता लगाने वाले इन हमलों को कम करने के लिए, कई तरह के उपाय अपनाए हैं. इन तरीकों से हमलों की रफ़्तार कम हो जाती है, लेकिन हमले पूरी तरह से खत्म नहीं होते.
Chrome 136 से, Chrome पहला ऐसा मुख्य ब्राउज़र है जो इन हमलों को अमान्य कर देता है. ऐसा करने के लिए, :visited
लिंक के इतिहास को अलग-अलग हिस्सों में बांटा जाता है.
:visited
लिंक का बंटवारा क्या है?
आपने पहले किन लिंक पर विज़िट किया है, यह दिखाने के लिए ब्राउज़र को समय के साथ विज़िट किए गए पेजों का ट्रैक रखना होगा. इसे :visited
इतिहास कहा जाता है. सीएसएस :visited
सिलेक्टर का इस्तेमाल करके, देखे गए लिंक को उन लिंक से अलग स्टाइल में दिखाया जा सकता है जिन्हें नहीं देखा गया है:
:visited {
color: purple;
background-color: yellow;
}
पहले, :visited
के इतिहास को अलग-अलग हिस्सों में नहीं बांटा जाता था. इसका मतलब है कि :visited
सिलेक्टर का इस्तेमाल करके, :visited
इतिहास को कहीं भी दिखाया जा सकता था. अगर आपने किसी लिंक पर क्लिक किया है, तो वह लिंक दिखाने वाली हर साइट पर :visited के तौर पर दिखेगा. डिज़ाइन में यह मुख्य गड़बड़ी थी, जिसकी वजह से उपयोगकर्ता के ब्राउज़िंग इतिहास की जानकारी को ऐक्सेस करने के लिए, हमले किए जा सकते थे.
नीचे दिया गया उदाहरण देखें. आप साइट A पर ब्राउज़ कर रहे हैं और साइट B पर जाने के लिए, किसी लिंक पर क्लिक करते हैं. इस स्थिति में, साइट B को आपके :visited
इतिहास में जोड़ दिया जाएगा. इसके बाद, हो सकता है कि आप साइट Evil पर जाएं, जो साइट B पर भी लिंक करती है. पार्टिशनिंग के बिना, साइट Evil, साइट B के उस लिंक को :visited
के तौर पर दिखाएगी. भले ही, आपने साइट Evil पर लिंक पर क्लिक न किया हो. इसके बाद, साइट Evil, सुरक्षा से जुड़े किसी एक्सप्लॉइट का इस्तेमाल करके यह पता लगा सकती है कि लिंक को :visited
के तौर पर स्टाइल किया गया है या नहीं. इससे यह पता चलता है कि आपने पहले साइट B पर विज़िट किया है. साथ ही, आपके ब्राउज़िंग इतिहास की जानकारी लीक हो जाती है.
पार्टीशन करने से पहले, लिंक पर क्लिक करने पर:
यह उस लिंक को दिखाने वाली हर साइट पर :visited के तौर पर दिखेगा!
पार्टिशन करने की सुविधा, आपके ब्राउज़िंग इतिहास को सुरक्षित रखती है. यह किसी लिंक को 'विज़िट किया गया' के तौर पर सिर्फ़ तब दिखाती है, जब आपने इस साइट से उस लिंक पर पहले क्लिक किया हो. अगर आपने पहले कभी इस साइट से इंटरैक्ट नहीं किया है, तो इस साइट के लिंक को :visited
के तौर पर स्टाइल नहीं किया जाएगा.
पिछले उदाहरण पर ध्यान दें, लेकिन इसमें पार्टीशन करने की सुविधा चालू है. मान लें कि आप साइट A पर ब्राउज़ कर रहे हैं और साइट B पर जाने के लिए किसी लिंक पर क्लिक करते हैं. ऐसे में, "साइट A + साइट B" का कॉम्बिनेशन, आपके 'विज़िट किए गए इतिहास' में सेव हो जाता है. इस तरह, जब आप साइट Evil पर जाते हैं, तो साइट B पर ले जाने वाला उसका लिंक :visited
के तौर पर नहीं दिखेगा. ऐसा इसलिए, क्योंकि यह हमारी "साइट A + साइट B" एंट्री के दोनों हिस्सों से मेल नहीं खाता. यह वह कॉन्टेक्स्ट है जहां आपने मूल रूप से लिंक पर क्लिक किया था. Site Evil पर ब्राउज़िंग इतिहास नहीं दिखता है. इसलिए, वह किसी भी एक्सप्लॉइट का फ़ायदा नहीं ले सकती. इसलिए, आपका ब्राउज़िंग इतिहास सुरक्षित है!
पार्टीशन करने के बाद, किसी लिंक पर क्लिक करने पर:
यह सिर्फ़ उन जगहों पर :visited
के तौर पर दिखता है जहां आपने पहले उस पर क्लिक किया है!
कम शब्दों में, पार्टिशनिंग का मतलब है कि आपके लिंक को, उन पर क्लिक किए जाने की जगह के बारे में ज़्यादा जानकारी के साथ सेव करना. Chrome में, ये हैं: लिंक का यूआरएल,
टॉप-लेवल साइट, और
फ़्रेम का ऑरिजिन. डिवाइस के हिसाब से डेटा को अलग-अलग हिस्सों में बांटने की सुविधा चालू होने पर, आपका :visited
इतिहास अब एक ग्लोबल सूची नहीं है. कोई भी साइट इस पर क्वेरी नहीं कर सकती. इसके बजाय, आपके :visited
इतिहास को "अलग-अलग हिस्सों में बांटा" जाता है या उस कॉन्टेक्स्ट के हिसाब से अलग किया जाता है जहां से आपने उस लिंक पर पहली बार विज़िट किया था.
एक ही साइट के दूसरे पेजों के लिंक के बारे में क्या?
इंटरनेट ब्राउज़ करते समय, हो सकता है कि आप कई ऐसे लिंक पर क्लिक कर दें जो एक ही साइट के अलग-अलग सबपेजों पर ले जाते हों. उदाहरण के लिए, अलग-अलग तरह की धातुओं के बारे में रिसर्च करते समय, "क्रोम" और "पीतल" के लिए Site.Wiki
पेजों पर जाया जा सकता है.
पार्टिशनिंग को सख्ती से लागू करने पर, उपयोगकर्ताओं को Site.Wiki
पेज पर,
गोल्ड के लिए :visited
के तौर पर दिखाए गए क्रोम और पीतल के पेजों के लिंक नहीं दिखेंगे. इसकी वजह यह है कि उपयोगकर्ता ने इनमें से हर पेज पर, किसी ऐसी टॉप-लेवल साइट से क्लिक किया है जो गोल्ड के लिए Site.Wiki
पेज से मेल नहीं खाती.
इस स्थिति में, उपयोगकर्ता अनुभव को बेहतर बनाने के साथ-साथ, डेटा को अलग-अलग हिस्सों में बांटने की सुविधा से जुड़ी निजता और सुरक्षा से जुड़ी सुरक्षा भी दी जा सकती है. इसके लिए, हमने सेल्फ़-लिंक के लिए एक सुविधा शुरू की है. खास तौर पर, कोई साइट अपने सबपेजों को :visited
के तौर पर दिखा सकती है. भले ही, इन लिंक पर पहले कभी क्लिक न किया गया हो. साइटों के पास, उपयोगकर्ता ने उनके सबपेजों पर विज़िट किया है या नहीं, यह ट्रैक करने के अन्य तरीके होते हैं. इसलिए, साइटों को सेल्फ़-लिंक की सुविधा के ज़रिए कोई नई जानकारी नहीं दी जाती.
पार्टिशन करने से, क्रॉस-साइट ट्रैकिंग से अब भी सुरक्षा मिलती है. साथ ही, एक ही सोर्स की नीति लागू होती है. हालांकि, यह ध्यान रखना ज़रूरी है कि यह सिर्फ़ साइट के सबपेजों पर ले जाने वाले लिंक पर लागू होता है. तीसरे पक्ष की साइटों या तीसरे पक्ष के iframe में मौजूद लिंक पर यह अपवाद लागू नहीं होता.
"सर्वोत्तम नतीजों में अपने-आप लिंक होने वाले कॉन्टेंट" को हटाने के बाद:
लागू करने की स्थिति
:visited
की सुरक्षा और निजता को बेहतर बनाने के लिए किए गए ये सुधार, Chrome के वर्शन 136 से उपलब्ध हैं. Chrome, उपयोगकर्ताओं के लिए इन सुरक्षा उपायों को लागू करने वाला पहला ब्राउज़र है.
दर्शकों से जुड़ना और सुझाव/राय देना या शिकायत करना
- ओरिजनल प्रस्ताव.
- सवाल पूछें और चर्चाओं में हिस्सा लें.
- अगर आपको लगता है कि कोई चीज़ आपकी उम्मीद के मुताबिक काम नहीं कर रही है, तो Chromium ट्रैकर में गड़बड़ी की शिकायत करें.