आइफ्रेम को खतरनाक और सुरक्षा जोखिम क्यों माना जाता है?


124

आइफ्रेम को खतरनाक और सुरक्षा जोखिम क्यों माना जाता है? क्या कोई ऐसे मामले के उदाहरण का वर्णन कर सकता है जहां इसका दुर्भावना से उपयोग किया जा सकता है?


5
यह एक पुरानी पत्नियों की कहानी जैसा लगता है। आपकी ब्राउज़र विंडो मूल रूप से केवल एक बड़ा iframe है।
बिल क्रिसवेल

1
यह पहले से ही
स्टैकेओवरफ्लो

1
@ सैमिच - नहीं, यह सर्वोत्तम अभ्यास के बारे में है, विशेष रूप से सुरक्षा के मुद्दों के बारे में नहीं (और केवल सुरक्षा का मुद्दा जो मैं इफ्रेम्स का उपयोग करके तृतीय पक्षों से उत्पन्न होने के बारे में सोच सकता हूं )
क्वेंटिन

इतनी अधिक सुरक्षा नहीं है जितना कि इसका सबसे अच्छा अभ्यास नहीं माना जाता है, देखें: stackoverflow.com/questions/1081315/why-developers-hate-iframes वे बहुत अधिक लोकप्रिय थे जब टेबल के साथ डिजाइन किए गए लोग, सभी को विभाजित करते हैं, लेकिन आइफ्रेम की आवश्यकता को समाप्त करते हैं।
रैंडमयूएस

मजेदार रूप से पर्याप्त एक लेख लगभग एक दशक बाद पॉप अप हुआ जो बताता है कि कुछ भी जिसमें आइफ्रेम में एक फॉर्म होता है, जो आपके सभी तृतीय-पक्ष जावास्क्रिप्ट आदि से अलग होता है, संभवतः फॉर्म को कटाई से बचाने के लिए आवश्यक है। hackernoon.com/…
गॉर्डन

जवाबों:


83

जैसे ही आप किसी अन्य डोमेन से सामग्री प्रदर्शित कर रहे होते हैं, आप मूल रूप से उस डोमेन पर भरोसा कर रहे होते हैं जो मैलवेयर की सेवा नहीं करता है।

Iframes per se के साथ कुछ भी गलत नहीं है। यदि आप iframe की सामग्री को नियंत्रित करते हैं, तो वे पूरी तरह से सुरक्षित हैं।


19
जैसे ही आप किसी अन्य डोमेन आदि से सामग्री को लिंक करते हैं ... इसके बारे में कुछ भी विशेष नहीं है।
क्वेंटिन

5
एक सही ढंग से लागू किए गए ब्राउज़र (उर्फ यूजर एजेंट) iframe सामग्री को iframe के बाहर लीक करने की अनुमति नहीं देगा। यदि होस्ट डॉक्यूमेंट ( <iframe>तत्व से युक्त ) में उपयुक्त स्टाइल है और संकेत देता है कि आइफ्रेम में अविश्वासित सामग्री है, तो कोई समस्या नहीं है। ब्राउज़र में मोडुलो वास्तविक कमजोरियों, निश्चित रूप से। संक्षेप में, एक <iframe>के बारे में के रूप में सुरक्षित है एक <a href>
मिको रानाल्टेन

2
एक छिपे हुए आइफ्रेम के बारे में क्या जो एक ही डोमेन से संबंधित है? क्या यह पूरी तरह से सुरक्षित है?
सियारन गलाघेर

2
छुपे हुए <iframe>एक ही डोमेन से सुरक्षा जोखिम का कारण हो सकता छिपा iframe के भीतर सामग्री आक्रमणकर्ता द्वारा संशोधित किया जा सकता है। यह हमलावर को <iframe>आपकी साइट पर किसी भी पृष्ठ पर छिपे हुए XSS हमले का विस्तार करने की अनुमति देगा जो कि कथित <iframe>डी सामग्री को संदर्भित करता है। देखें stackoverflow.com/a/9428051/334451 जानकारी के लिए।
मिकीको रैंटलैनेन

दिलचस्प रूप से पर्याप्त है, iFrame वास्तव में रिवर्स केस से एक उपयोगी सुरक्षा हो सकता है। यदि आपके पास अपनी साइट पर बहुत सारे थर्ड पार्टी स्क्रिप्ट हैं, तो आपको उनसे फॉर्म को अलग करना होगा। ऐसा करने का एक तरीका सुझाया गया, जो किसी तीसरे पक्ष की जावास्क्रिप्ट के साथ अपने स्वयं के न्यूनतम पृष्ठ में फ़ॉर्म डाल रहा था, और मेजबान पृष्ठ में एक iframe में प्रदर्शित कर रहा था। hackernoon.com/…
गॉर्डन

140

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>तत्व की आवश्यकता नहीं है ।
मिक्को रैंटलैनेन

13

यदि आप स्वयं इसे नियंत्रित करते हैं तो संभवतः मैं क्रॉस-डोमेन iFrame मान रहा हूं क्योंकि जोखिम कम होगा।

  • यदि आपकी साइट में एक iframe शामिल है, तो Clickjacking एक समस्या है
  • एक समझौता किया गया iFrame दुर्भावनापूर्ण सामग्री प्रदर्शित कर सकता है (कल्पना करें कि विज्ञापन के बजाय लॉगिन बॉक्स प्रदर्शित करने वाला iFrame)
  • एक शामिल iframe अलर्ट और शीघ्र जैसे कुछ JS कॉल कर सकता है जो आपके उपयोगकर्ता को परेशान कर सकता है
  • एक शामिल iframe स्थान के माध्यम से रीडायरेक्ट कर सकता है ।href (yikes, एक 3p फ्रेम की कल्पना करें जो ग्राहक को bankofamerica.com से bankofamerica.fake.com पर पुनर्निर्देशित करता है)
  • 3p फ्रेम (जावा / फ्लैश / एक्टिवएक्स) के अंदर मैलवेयर आपके उपयोगकर्ता को संक्रमित कर सकता है


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.