क्लिकजैकिंग एक नुकसान पहुंचाने वाला हमला है. इसमें उपयोगकर्ताओं को धोखा देकर, किसी ऐसी साइट के लिंक या यूज़र इंटरफ़ेस (यूआई) एलिमेंट पर क्लिक करने के लिए कहा जाता है जो भरोसेमंद और जाना-पहचाना लगती है. आम तौर पर, ऐसा <iframe>
का इस्तेमाल करके, भरोसेमंद साइट के कुछ हिस्से या पूरी साइट को नुकसान पहुंचाने वाली साइट में एम्बेड करके किया जाता है.
Content-Security-Policy
(सीएसपी) हेडर में मौजूद X-Frame-Options
(XFO) हेडर और frame-ancestors
डायरेक्टिव, क्लिक जैकिंग के हमलों को कम कर सकते हैं. ऐसा करने के लिए, वे यह कंट्रोल करते हैं कि किसी साइट को <iframe>
में कैसे एम्बेड किया जा सकता है.
Lighthouse ऑडिट पूरा न होने की वजहें
अगर XFO हेडर को SAMEORIGIN
या DENY
के साथ सेट किया गया है या सीएसपी हेडर पर frame-ancestors
डायरेक्टिव सेट किया गया है, तो ऑडिट पास हो जाएगा. अगर फ़्रेम कंट्रोल की इन दोनों नीतियों में से किसी को भी कॉन्फ़िगर नहीं किया गया है, तो ऑडिट पूरा नहीं हो पाएगा.
क्लिक जैकिंग को कम करने के लिए, फ़्रेम कंट्रोल की नीति सेट करने का तरीका
दस्तावेज़ के शुरुआती अनुरोध के एचटीटीपी हेडर पर, फ़्रेम कंट्रोल की नीति सेट की जानी चाहिए. Content-Security-Policy
में मौजूद X-Frame-Options
हेडर और frame-ancestors
डायरेक्टिव, <meta>
एलिमेंट पर सेट होने पर काम नहीं करेंगे.
XFO हेडर
XFO हेडर के लिए DENY
या SAMEORIGIN
सेट करने पर, क्लिक जैकिंग के हमलों को कम किया जा सकता है:
X-Frame-Options: SAMEORIGIN
X-Frame-Options: DENY
SAMEORIGIN
डायरेक्टिव, पेज को सिर्फ़ तब दिखाने की अनुमति देता है, जब सभी पैरंट फ़्रेम का ऑरिजिन, पेज के ऑरिजिन से मेल खाता हो. इसके उलट, DENY
डायरेक्टिव पेज को फ़्रेम में दिखने से रोकता है. भले ही, पैरंट फ़्रेम का ऑरिजिन कुछ भी हो.
सीएसपी हेडर
सीएसपी हेडर में मौजूद frame-ancestors
डायरेक्टिव से यह तय होता है कि कौनसी साइटें, दिए गए पेज को <frame>
, <iframe>
, <object>
या <embed>
में एम्बेड कर सकती हैं. XFO की तरह ही, सीएसपी frame-ancestors
डायरेक्टिव का इस्तेमाल, क्लिक जैकिंग के हमलों को कम करने के लिए किया जा सकता है. इसके लिए, इसे self
या none
पर सेट करें:
Content-Security-Policy: frame-ancestors 'self';
Content-Security-Policy: frame-ancestors 'none';
हालांकि, frame-ancestors
डायरेक्टिव, XFO की तुलना में ज़्यादा सुविधाजनक है, क्योंकि यह खास पैरंट सोर्स सेट कर सकता है, जो पेज को एम्बेड कर सकते हैं:
Content-Security-Policy: frame-ancestors 'self' https://example.com;