Defaults.Exposed › सुधार › क्लिकजैकिंग सुरक्षा (X-Frame-Options)
क्लिकजैकिंग सुरक्षा (X-Frame-Options) को कैसे ठीक करें
एक एक-पंक्ति निर्देश जो ब्राउज़रों को अन्य वेबसाइटों को आपकी साइट को अपने अंदर चुपके से लोड करने से रोकता है। इसके बिना, एक घोटालेबाज आपके वास्तविक, लॉग-इन पेजों को एक नकली पेज के पीछे छिपा सकता है और आपके ग्राहकों को ऐसी चीजें क्लिक करने के लिए धोखा दे सकता है जो उन्होंने कभी नहीं चाहीं — एक भुगतान स्वीकृत करना, पासवर्ड बदलना, पहुँच प्रदान करना।
आपके व्यवसाय के लिए मुख्य बात: एक धोखेबाज आपकी लाइव वेबसाइट को एक नकली के अंदर अदृश्य रूप से लपेट सकता है और आपके लॉग-इन ग्राहकों से पैसे या खाते की पहुँच चुरा सकता है — और ग्राहक को यह आपकी साइट पर हुआ लगता है। ठीक करना मुफ्त है और एक डेवलपर के लगभग 15 मिनट लेता है।
यह आपको क्या खर्च कर सकता है
- एक घोटालेबाज आपके वास्तविक लॉगिन या भुगतान स्क्रीन को एक हानिरहित दिखने वाले पेज के पीछे छिपाता है और एक ग्राहक को वास्तव में बिना जाने 'एक स्थानांतरण की पुष्टि करने' या 'एक सेटिंग बदलने' के लिए धोखा देता है।
- आपका लॉग-इन खाता क्षेत्र एक 'आपने जीता — दावा करने के लिए क्लिक करें' पेज के ऊपर अदृश्य रूप से लोड होता है; क्लिक वास्तव में ग्राहक के खाते पर एक वास्तविक परिवर्तन स्वीकृत करता है।
- एक संभावित ग्राहक की IT टीम हस्ताक्षर करने से पहले एक त्वरित सुरक्षा स्कैन चलाती है, देखती है कि आपकी साइट किसी के द्वारा एम्बेड की जा सकती है, और इसे एक जोखिम के रूप में फ्लैग करती है।
- आपका ब्रांड एक धोखाधड़ी अभियान में चारा बन जाता है; जो ग्राहक फँसते हैं उन्हें 'वह कंपनी जिसकी साइट ने इसे होने दिया' याद रहती है।
- एक ऑडिटर या साइबर-बीमा स्कैन गायब क्लिकजैकिंग सुरक्षा को एक बुनियादी-स्वच्छता विफलता के रूप में सूचीबद्ध करता है।
यह क्यों मायने रखता है। यह एक मुफ्त, एक-पंक्ति सेटिंग है जिसे जोड़ने में मिनट लगते हैं, और यह आपके लॉग-इन ग्राहकों के उद्देश्य से ट्रिकरी की एक पूरी श्रेणी बंद करती है। हमारी स्कोरिंग पर यह वास्तविक-अंकों वाली वेब-सुरक्षा जाँच है।
यह क्या है, सरल शब्दों में
जब कोई आपकी वेबसाइट पर जाता है, तो उनका ब्राउज़र भी आपकी साइट को किसी अन्य वेबसाइट के अंदर लोड करने के लिए कहा जा सकता है — एक बड़े पेज के अंदर एक छोटी खिड़की की तरह एम्बेड किया गया। यह हानिरहित लगता है, और कभी-कभी यह होता भी है। लेकिन यह क्लिकजैकिंग नामक हमले के पीछे का तंत्र है।
यहाँ चाल है। एक घोटालेबाज अपना पेज बनाता है और चुपचाप आपकी वास्तविक वेबसाइट को इसके अंदर लोड करता है — अदृश्य रूप से, पूरी तरह पारदर्शी बनाया गया। फिर वे अपनी सामग्री ऊपर रखते हैं। आपका ग्राहक हमलावर का पेज देखता है और जो एक हानिरहित बटन लगता है उसे क्लिक करता है। लेकिन क्योंकि आपकी वास्तविक साइट उनके कर्सर के नीचे अदृश्य रूप से बैठी है, क्लिक वास्तव में आपके पेज पर जाता है — एक भुगतान की पुष्टि करना, एक पासवर्ड बदलना, पहुँच स्वीकृत करना।
क्लिकजैकिंग सुरक्षा एक संक्षिप्त, अदृश्य निर्देश है जो आपकी वेबसाइट हर विज़िटर के ब्राउज़र को भेजती है जो प्रभावी रूप से कहती है:
“अन्य वेबसाइटों को मुझे उनके अंदर लोड न करने दें। यदि कोई कोशिश करता है, तो अस्वीकार करें।”
आधुनिक ब्राउज़र स्वचालित रूप से इसका पालन करते हैं। इसके चालू होने से, चाल बस काम नहीं करती।
इससे आपको क्या नुकसान हो सकता है
-
अदृश्य “पुष्टि करें।” एक ग्राहक एक टैब में आपके खाता पोर्टल में लॉग इन है। वे एक पेज पर जाते हैं जो कुछ आकर्षक वादा करता है और एक बड़ा “जारी रखें” बटन दिखाता है। उस बटन के नीचे छिपा है आपका वास्तविक “हस्तांतरण की पुष्टि करें” या “ईमेल बदलें” नियंत्रण। वे “जारी रखें” क्लिक करते हैं — और अनजाने में आपके साथ उनके वास्तविक खाते पर एक परिवर्तन अधिकृत करते हैं।
-
सेटिंग हाईजैक। एक हमलावर आपके खाता-सेटिंग पेज को फ्रेम करता है और एक निर्दोष गेम या सर्वेक्षण ओवरले करता है।
-
वह सौदा जो रुक जाता है। एक बड़ा ग्राहक हस्ताक्षर करने से पहले अपना मानक सुरक्षा प्रश्नावली भेजता है।
-
ब्रांड-as-बेट अभियान। क्योंकि आपके वास्तविक, विश्वसनीय पेज एम्बेड किए जा सकते हैं, एक हमलावर एक व्यापक फ़िशिंग अभियान में आपके लॉगिन या चेकआउट का उपयोग करता है।
-
ऑडिट फ्लैग। एक बीमाकर्ता का स्कैन, या एक ऑडिटर आपकी सुरक्षा स्थिति की समीक्षा करता है, निष्कर्षों में गायब क्लिकजैकिंग सुरक्षा सूचीबद्ध करता है।
यह वास्तव में क्या है
जब एक ब्राउज़र आपकी वेबसाइट से एक पेज के लिए कहता है, तो आपका सर्वर पेज के साथ कुछ अदृश्य “हेडर” — अतिरिक्त निर्देश जो ब्राउज़र पढ़ता है — वापस भेजता है। क्लिकजैकिंग सुरक्षा इन हेडर के माध्यम से वितरित की जाती है। दो हैं, और हमारी जाँच पास होती है यदि कोई एक मौजूद है:
1. पुराना हेडर — X-Frame-Options:
X-Frame-Options: SAMEORIGIN
यह दो व्यावहारिक मानों में से एक लेता है:
SAMEORIGIN— आपकी अपनी साइट अपने पेज एम्बेड कर सकती है, लेकिन कोई बाहरी साइट नहीं कर सकती। लगभग सभी के लिए सुरक्षित डिफ़ॉल्ट।DENY— कोई भी आपके पेज एम्बेड नहीं कर सकता, आप भी नहीं।
2. आधुनिक हेडर — Content-Security-Policy frame-ancestors:
Content-Security-Policy: frame-ancestors 'self';
यह नए, अधिक लचीले नियंत्रण और वर्तमान मानक हैं।
“अच्छा” कैसा दिखता है
सबसे मजबूत सेटअप दोनों का उपयोग करता है। हमारी जाँच या तो अकेले से संतुष्ट है — लेकिन चूंकि दोनों मुफ्त हैं और उतने ही मिनट लेते हैं, दोनों सेट करने का कोई कारण नहीं है।
इसे कैसे ठीक करें (मुफ्त, ~15 मिनट)
इस अनुभाग को जो भी आपकी वेबसाइट चलाता है उसे सौंपें — ठीक करना मुफ्त है।
चरण 1 — कितना सख्त होना है तय करें
- अधिकांश व्यवसाय:
SAMEORIGIN/frame-ancestors 'self'। आपकी अपनी साइट काम करती रहती है; बाहरी लोग ब्लॉक हैं। - यदि आपकी साइट कभी अपने पेज एम्बेड नहीं करती: अधिकतम लॉकडाउन के लिए
DENY/frame-ancestors 'none'।
चरण 2 — हेडर जोड़ें (अपना प्लेटफॉर्म चुनें)
Nginx — अपने server ब्लॉक के अंदर:
add_header X-Frame-Options "SAMEORIGIN" always;
add_header Content-Security-Policy "frame-ancestors 'self';" always;
Apache — सुनिश्चित करें कि mod_headers सक्षम है, फिर आपके वर्चुअल होस्ट में:
Header always set X-Frame-Options "SAMEORIGIN"
Header always set Content-Security-Policy "frame-ancestors 'self';"
Microsoft IIS — web.config में <customHeaders> के अंदर:
<add name="X-Frame-Options" value="SAMEORIGIN" />
<add name="Content-Security-Policy" value="frame-ancestors 'self';" />
Cloudflare (या एक समान CDN): Rules → Transform Rules → Modify Response Header पर जाएं, और दो नियम जोड़ें।
पहले से Content-Security-Policy भेज रहे हैं? दूसरा CSP हेडर न बनाएं — अपनी मौजूदा नीति में frame-ancestors जोड़ें।
चरण 3 — पुनः लोड करें और सत्यापित करें
सामान्य गलतियाँ
- रिपोर्ट-केवल CSP उपयोग करना और मानना यह आपको बचाता है।
Content-Security-Policy-Report-Onlyकेवल उल्लंघन रिपोर्ट करता है — यह कुछ भी लागू नहीं करता। - दो अलग
Content-Security-Policyहेडर सेट करना। यदि आपके पास पहले से CSP है, तो उसमेंframe-ancestorsजोड़ें बजाय दूसरी नीति जारी करने के। DENYसेट करना जब आपकी अपनी साइट अपने पेज एम्बेड करती है।DENYसभी फ्रेमिंग ब्लॉक करता है, जिसमें आपकी अपनी भी शामिल है।- केवल होमपेज की सुरक्षा करना। क्लिकजैकिंग के लिए सबसे अधिक मायने रखने वाले पेज लॉग-इन वाले हैं।
- HTTPS या पैडलॉक पहले से कवर करता है यह मानना।
- पुराने वर्कअराउंड पर निर्भर करना। “फ्रेम-बस्टिंग” JavaScript अविश्वसनीय है। हेडर सही, ब्राउज़र-लागू सुधार है।
अक्सर पूछे जाने वाले प्रश्न
मैं तकनीकी नहीं हूँ — क्या मैं इसे स्वयं संभाल सकता हूँ?
आपको तकनीकी भाग करने की जरूरत नहीं है। यह आपकी वेबसाइट के सर्वर या आपके CDN में जोड़ी गई एकल सेटिंग है, और कोई भी वेब डेवलपर या IT प्रदाता इसे कुछ मिनटों में जोड़ सकता है।
क्या यह मेरी अपनी साइट, या वैध भागीदारों को, मेरे पेज प्रदर्शित करने से रोकेगा?
केवल तभी यदि आप इसे बहुत सख्ती से सेट करते हैं। सामान्य सेटिंग ('SAMEORIGIN', या 'frame-ancestors self') अभी भी आपकी अपनी वेबसाइट को अपने पेजों को सामान्य रूप से एम्बेड करने देती है — यह केवल बाहरी साइटों को ब्लॉक करती है।
हम एक छोटा व्यवसाय हैं — क्या कोई वास्तव में हमें लक्षित करने की परवाह करेगा?
ये हमले स्वचालित उपकरणों द्वारा थोक में चलाए जाते हैं, हाथ से नहीं चुने जाते। छोटी साइटें अक्सर ठीक इसलिए हिट होती हैं क्योंकि वे इस तरह की बुनियादी सुरक्षा से वंचित होती हैं।
अच्छा वास्तव में कैसा दिखता है?
या तो SAMEORIGIN (या DENY) पर सेट एक X-Frame-Options हेडर, या एक frame-ancestors निर्देश के साथ एक Content-Security-Policy — आदर्श रूप से दोनों।
क्या यह SSL पैडलॉक या HTTPS के समान नहीं है?
नहीं — वे पूरी तरह से अलग-अलग चीजों से सुरक्षा करते हैं। HTTPS ट्रांजिट में कनेक्शन को एन्क्रिप्ट करता है। क्लिकजैकिंग सुरक्षा आपके पेजों को किसी और की साइट के अंदर लोड होने से रोकती है।
यदि हम इसे ठीक नहीं करते, तो क्या यह हमारे ग्रेड को कम करता है?
हाँ। यह एक स्कोर की गई वेब-सुरक्षा जाँच है, न कि सूचनात्मक — एक गायब हेडर अंक खर्च करता है और उच्च गंभीरता के रूप में रेट किया जाता है।