क्रॉस-ऑरिजिन डेस्टिनेशन के लिंक असुरक्षित होते हैं

target="_blank" एट्रिब्यूट का इस्तेमाल करके, किसी दूसरी साइट के पेज से लिंक करने पर, आपकी साइट को परफ़ॉर्मेंस और सुरक्षा से जुड़ी समस्याओं का सामना करना पड़ सकता है:

  • ऐसा हो सकता है कि दूसरा पेज, आपके पेज की तरह ही प्रोसेस पर काम कर रहा हो. अगर दूसरे पेज पर बहुत ज़्यादा JavaScript चल रही है, तो आपके पेज की परफ़ॉर्मेंस पर असर पड़ सकता है.
  • दूसरा पेज, window.opener प्रॉपर्टी के साथ आपके window ऑब्जेक्ट को ऐक्सेस कर सकता है. इससे दूसरे पेज को आपके पेज को नुकसान पहुंचाने वाले यूआरएल पर रीडायरेक्ट करने की अनुमति मिल सकती है.

अपने target="_blank" लिंक में rel="noopener" या rel="noreferrer" एट्रिब्यूट जोड़ने से, इन समस्याओं से बचा जा सकता है.

Lighthouse क्रॉस-ऑरिजिन डेस्टिनेशन ऑडिट कैसे फ़ेल होता है

Lighthouse, क्रॉस-ऑरिजिन डेस्टिनेशन पर ले जाने वाले असुरक्षित लिंक को फ़्लैग करता है:

यह लाइटहाउस ऑडिट है. इसमें क्रॉस-ऑरिजिन डेस्टिनेशन के असुरक्षित लिंक दिखाए गए हैं.

Lighthouse, लिंक को असुरक्षित के तौर पर मार्क करने के लिए यह प्रोसेस अपनाता है:

  1. उन सभी <a> टैग को इकट्ठा करें जिनमें target="_blank" एट्रिब्यूट शामिल है, लेकिन rel="noopener" या rel="noreferrer" एट्रिब्यूट शामिल नहीं है.
  2. एक ही होस्ट के लिंक को फ़िल्टर करें.

Lighthouse, एक ही होस्ट के लिंक को फ़िल्टर कर देता है. इसलिए, बड़ी साइट पर काम करते समय आपको एक खास मामले के बारे में पता होना चाहिए. अगर किसी पेज पर rel="noopener" का इस्तेमाल किए बिना, आपकी साइट के किसी दूसरे पेज का target="_blank" लिंक मौजूद है, तो इस ऑडिट के नतीजों का असर अब भी लागू होगा. हालांकि, आपको ये लिंक, Lighthouse के नतीजों में नहीं दिखेंगे.

अपनी साइट की परफ़ॉर्मेंस बेहतर करें और सुरक्षा जोखिमों से बचें

Lighthouse रिपोर्ट में पहचाने गए हर लिंक में rel="noopener" या rel="noreferrer" जोड़ें. आम तौर पर, target="_blank" का इस्तेमाल करते समय, हमेशा rel="noopener" या rel="noreferrer" जोड़ें:

<a href="https://examplepetstore.com" target="_blank" rel="noopener">
  Example Pet Store
</a>
  • rel="noopener" की वजह से, नया पेज window.opener प्रॉपर्टी को ऐक्सेस नहीं कर पाता. साथ ही, यह पक्का करता है कि यह अलग प्रोसेस में काम करे.
  • rel="noreferrer" का भी यही असर होता है. साथ ही, यह Referer हेडर को नए पेज पर भेजे जाने से भी रोकता है.

ज़्यादा जानकारी के लिए, क्रॉस-ऑरिजिन रिसॉर्स को सुरक्षित तरीके से शेयर करना लेख पढ़ें.

संसाधन