2011-12-05 14 views
8

मुझे एक आईफ्रेम के साथ एक पेज मिला है। पृष्ठ और आईफ्रेम का स्रोत अलग-अलग डोमेन में हैं। आईफ्रेम के अंदर मैं प्यारा एडिटर नामक एक समृद्ध टेक्स्ट एडिटर का उपयोग कर रहा हूं (जो इतना प्यारा नहीं हुआ है)। CuteEditor में कुछ जावास्क्रिप्ट फ़ंक्शंस हैं जो 'दस्तावेज़' तक पहुंचने का प्रयास करते हैं लेकिन ब्राउज़र एक्सेस से इनकार करता है क्योंकि वे एक ही डोमेन में नहीं हैं।मैं आईफ़्रेम को मूल फ्रेम तक पहुंचने से कैसे रोक सकता हूं?

यहाँ सटीक त्रुटि है:

Permission denied to access property 'document' http://dd.byu.edu/plugins/cuteeditor_files/Scripts/Dialog/DialogHead.js Line 1

जावास्क्रिप्ट को संपादित करना है क्योंकि यह minfied किया गया है और इसलिए समझ से परे सभी चर नाम गुप्त रहे हैं सवाल से बाहर है।

एक अलग संपादक का उपयोग वर्तमान में प्रश्न से बाहर है क्योंकि यह एक कार्य प्रोजेक्ट है और यह संपादक मुझे उपयोग करने के लिए कहा गया है।

क्या आईफ्रेम स्वयं निहित रखने का कोई तरीका है? तो यह iframe के अंदर सब कुछ करता है और पैरेंट फ्रेम में तोड़ने की कोशिश नहीं करता है?

उत्तर

-2

आपको उस घटना के बारे में चिंता करने की आवश्यकता नहीं है।

एकमात्र तरीका iframes क्रॉस-उत्पत्ति से बात कर सकता है पोस्ट मैसेज के साथ है, और यह केवल तभी संभव है जब आप सीधे उस डोमेन को सुन रहे हों। बच्चे iframe किसी भिन्न डोमेन से भरी हुई है

https://developer.mozilla.org/en/DOM/window.postMessage

+0

फिर भी CuteEditor इस त्रुटि के कारण iframe के अंदर काम नहीं करता है। क्या यह एक अलग समस्या है, तो? – Justin

+0

मुझे यकीन नहीं है। हमें आपका स्रोत कोड देखना होगा। –

7

है, तो यह माता पिता पेज या डोम उपयोग करने में सक्षम नहीं होगा।

हालांकि, अभी भी मैन-इन-द-बीच हमले के लिए एक संभावित भेद्यता है। http://yoursite.com बंद अपने पृष्ठ लोड मान लीजिए और करने के लिए http://badsite.org

  • पहले http://badsite.orghttp://yoursite.com/badpage

  • पर रीडायरेक्ट यह कदम कि एक आदमी-इन-मध्यम हमले की आवश्यकता है आइफ्रेम चला जाता है। हमलावर या तो उपयोगकर्ता और yoursite.com के बीच प्राप्त करने में सक्षम होना चाहिए, या अपने DNS लुकअप के उत्तरों को नियंत्रित करना चाहिए। यह ध्वनि की तुलना में आसान है - जो भी सार्वजनिक वाईफाई एक्सेस पॉइंट पर प्रशासनिक नियंत्रण रखता है वह इसे कर सकता है (स्टारबक्स, होटल, हवाई अड्डे पर विचार करें।) लक्ष्य हमलावर की साइट से http://yoursite.com/badpage की सामग्री की सेवा करना है, न कि आपकी वास्तविक साइट।

  • हमलावर तब (नकली) http://yoursite.org/badpage से जो भी दुर्भावनापूर्ण कोड पसंद कर सकता है, उसकी सेवा कर सकता है। चूंकि यह मुख्य पृष्ठ के समान डोमेन में है, इसलिए इसके पास माता-पिता DOM तक पहुंच होगी।

एचटीएमएल 5 आइफ्रेम सैंडबॉक्स विशेषता तरीका यह से बचने के लिए हो रहा है। आप spec पढ़ सकते हैं, लेकिन सबसे अच्छा विवरण here हो सकता है।

यह Chrome, IE10, FireFox, Safari पर समर्थित प्रतीत होता है।

spec का कहना है कि यदि "अनुमति-वही-मूल" विशेषता सेट नहीं है, "सामग्री को एक अद्वितीय उत्पत्ति के रूप में माना जाता है।" इससे आपके बच्चे को आईफ़्रेम को माता-पिता के डीओएम के किसी भी भाग तक पहुंचने से रोका जाना चाहिए, इससे कोई फर्क नहीं पड़ता कि ब्राउजर यूआरएल क्या सोचता है।

+0

हमले के रूप में हमला इतना आसान नहीं है। जब डिवाइस को DNS से ​​yoursite.com पर पता मिलता है, तो यह आगे की पहुंच के लिए कैश करेगा। इस हमले को पूरी तरह कार्यान्वित करने के लिए, एक HTTP प्रॉक्सी की आवश्यकता होती है, और मैन-इन-द-बीच को http://yoursite.com/badpage को iframe src के रूप में उपयोग करने के लिए वेबपृष्ठ को फिर से लिखना होगा। यदि आप HTTPS का उपयोग करते हैं तो यह और जटिल है, क्योंकि प्रॉक्सी को पृष्ठों को बदलने के लिए HTTP के रूप में HTTPS की नकल करना होगा। यह असंभव नहीं है, लेकिन जब तक कि साइट हमलावरों के लिए आकर्षक न हो (जैसे बैंक, नीलामी या अत्यधिक उपयोग की जाने वाली साइटें जिन्हें पासवर्ड फसल करने के लिए उपयोग किया जा सकता है), आपका एक्सपोजर कम है। – fernacolo

संबंधित मुद्दे