आइफ्रेम को खतरनाक और सुरक्षा जोखिम क्यों माना जाता है? क्या कोई ऐसे मामले के उदाहरण का वर्णन कर सकता है जहां इसका दुर्भावना से उपयोग किया जा सकता है?
आइफ्रेम को खतरनाक और सुरक्षा जोखिम क्यों माना जाता है? क्या कोई ऐसे मामले के उदाहरण का वर्णन कर सकता है जहां इसका दुर्भावना से उपयोग किया जा सकता है?
जवाबों:
जैसे ही आप किसी अन्य डोमेन से सामग्री प्रदर्शित कर रहे होते हैं, आप मूल रूप से उस डोमेन पर भरोसा कर रहे होते हैं जो मैलवेयर की सेवा नहीं करता है।
Iframes per se के साथ कुछ भी गलत नहीं है। यदि आप iframe की सामग्री को नियंत्रित करते हैं, तो वे पूरी तरह से सुरक्षित हैं।
<iframe>
तत्व से युक्त ) में उपयुक्त स्टाइल है और संकेत देता है कि आइफ्रेम में अविश्वासित सामग्री है, तो कोई समस्या नहीं है। ब्राउज़र में मोडुलो वास्तविक कमजोरियों, निश्चित रूप से। संक्षेप में, एक <iframe>
के बारे में के रूप में सुरक्षित है एक <a href>
।
<iframe>
एक ही डोमेन से सुरक्षा जोखिम का कारण हो सकता छिपा iframe के भीतर सामग्री आक्रमणकर्ता द्वारा संशोधित किया जा सकता है। यह हमलावर को <iframe>
आपकी साइट पर किसी भी पृष्ठ पर छिपे हुए XSS हमले का विस्तार करने की अनुमति देगा जो कि कथित <iframe>
डी सामग्री को संदर्भित करता है। देखें stackoverflow.com/a/9428051/334451 जानकारी के लिए।
IFRAME
तत्व एक सुरक्षा जोखिम हो सकता है अगर आपकी साइट एक अंदर एम्बेडेड है IFRAME
शत्रुतापूर्ण साइट पर । अधिक विवरण के लिए Google "क्लिकजैकिंग"। ध्यान दें कि आप उपयोग करते हैं <iframe>
या नहीं, इससे कोई फर्क नहीं पड़ता । इस हमले से एकमात्र वास्तविक सुरक्षा HTTP हेडर जोड़ना है X-Frame-Options: DENY
और आशा है कि ब्राउज़र को अपना काम पता है।
इसके अलावा, IFRAME तत्व एक सुरक्षा जोखिम हो सकता है यदि आपकी साइट के किसी भी पृष्ठ में XSS भेद्यता है जिसका फायदा उठाया जा सकता है । उस मामले में हमलावर XSS हमले का विस्तार उसी डोमेन के भीतर किसी भी पृष्ठ पर कर सकता है जिसे <iframe>
XSS भेद्यता वाले पृष्ठ पर लोड करने के लिए राजी किया जा सकता है। ऐसा इसलिए है क्योंकि मूल सामग्री (समान डोमेन) की सामग्री को मूल सामग्री DOM तक पहुंचने की अनुमति है (व्यावहारिक रूप से "होस्ट" दस्तावेज़ में जावास्क्रिप्ट निष्पादित करें)। इस हमले से एकमात्र वास्तविक सुरक्षा विधियाँ HTTP हैडर X-Frame-Options: DENY
और / या हमेशा सही ढंग से सभी उपयोगकर्ता द्वारा जमा किए गए डेटा को एनकोड करना है (यानी, आपकी साइट पर कभी भी XSS भेद्यता नहीं है - आसान काम की तुलना में कहा गया है)।
यह मुद्दे का तकनीकी पक्ष है। इसके अलावा, उपयोगकर्ता इंटरफ़ेस का मुद्दा है। यदि आप अपने उपयोगकर्ताओं को यह विश्वास करना सिखाते हैं कि लिंक पर क्लिक करने पर URL बार नहीं बदलना चाहिए (जैसे कि आपकी साइट सभी वास्तविक सामग्री के साथ एक बड़ा iframe का उपयोग करती है), तो उपयोगकर्ता भविष्य में वास्तविक सुरक्षा के मामले में कुछ भी नोटिस नहीं करेंगे। भेद्यता। उदाहरण के लिए, आपकी साइट के भीतर एक XSS भेद्यता हो सकती है जो हमलावर को आपके आइफ्रेम के भीतर शत्रुतापूर्ण स्रोत से सामग्री लोड करने की अनुमति देती है। कोई भी अंतर नहीं बता सकता क्योंकि URL बार अभी भी पिछले व्यवहार (कभी नहीं बदलता है) के समान दिखता है और सामग्री "मान्य" दिखती है भले ही यह उपयोगकर्ता क्रेडेंशियल्स का अनुरोध करने वाले शत्रुतापूर्ण डोमेन से हो।
यदि कोई दावा करता है कि <iframe>
आपकी साइट पर एक तत्व का उपयोग करना खतरनाक है और सुरक्षा जोखिम का कारण बनता है, तो वह यह नहीं समझता है कि <iframe>
तत्व क्या करता है, या वह <iframe>
ब्राउज़र में संबंधित कमजोरियों की संभावना के बारे में बोल रहा है। <iframe src="...">
टैग की सुरक्षा के बराबर है <img src="..."
या <a href="...">
जब तक कि ब्राउज़र में कोई भेद्यता न हो। और अगर कोई उपयुक्त भेद्यता है, तो इसका उपयोग <iframe>
, <img>
या <a>
तत्व के बिना भी इसे ट्रिगर करना संभव हो सकता है , इसलिए यह इस मुद्दे पर विचार करने के लायक नहीं है।
हालाँकि, चेतावनी दी जाती है कि सामग्री <iframe>
डिफ़ॉल्ट रूप से शीर्ष स्तर के नेविगेशन को आरंभ कर सकती है । यही है, सामग्री के भीतर <iframe>
वर्तमान पृष्ठ स्थान पर एक लिंक को स्वचालित रूप से खोलने की अनुमति है (नया स्थान पता बार में दिखाई देगा)। इससे बचने का एक ही तरीका है कि sandbox
मूल्य के बिना विशेषता को जोड़ा जाए allow-top-navigation
। उदाहरण के लिए, <iframe sandbox="allow-forms allow-scripts" ...>
। दुर्भाग्य से, सैंडबॉक्स भी सभी प्लगइन्स को अक्षम करता है, हमेशा। उदाहरण के लिए, Youtube सामग्री को सैंडबॉक्स नहीं किया जा सकता क्योंकि फ़्लैश प्लेयर को अभी भी सभी Youtube सामग्री को देखना आवश्यक है। कोई भी ब्राउज़र एक ही समय में प्लगइन्स का उपयोग करने और शीर्ष स्तर के नेविगेशन को अस्वीकार करने का समर्थन नहीं करता है।
ध्यान दें कि X-Frame-Options: DENY
सामग्री के क्रॉस-ऑरिजिन (जिसे " पिक्सेल परफेक्ट टाइमिंग अटैक्स " के रूप में भी जाना जाता है) को पढ़ने के लिए साइड-चैनल हमले को प्रस्तुत करने से बचाता है ।
"This is because content from the same origin (same domain) is allowed to access the parent content DOM (practically execute JavaScript in the "host" document)."
iframe में (बच्चे) दस्तावेज़ के लिए XSS भेद्यता वाले (माता-पिता) दस्तावेज़ की दिशा में rephrased नहीं होना चाहिए ?
<iframe>
किसी पृष्ठ पर उपयोग करते हैं, तो यह iframe के भीतर दस्तावेज़ को होस्ट करने के लिए सामग्री से भेद्यता का विस्तार करने की अनुमति देता है। सवाल <iframe>
खतरनाक होने के बारे में था और अगर मेजबान दस्तावेज़ में XSS भेद्यता है, तो आपको वास्तव में <iframe>
तत्व की आवश्यकता नहीं है ।
यदि आप स्वयं इसे नियंत्रित करते हैं तो संभवतः मैं क्रॉस-डोमेन iFrame मान रहा हूं क्योंकि जोखिम कम होगा।
"खतरनाक" और "सुरक्षा जोखिम" ऐसी पहली चीजें नहीं हैं जो वसंत के दौरान लोगों के मन में आईएफआर का उल्लेख करती हैं ... लेकिन उनका उपयोग क्लिकजैकिंग हमलों में किया जा सकता है ।
आइफ्रेम क्रॉस फ्रेम स्क्रिप्टिंग के लिए भी असुरक्षित है: