2010-10-30 13 views
9

के साथ आईफ्रेम की ऊंचाई प्राप्त करें मुझे अपने पृष्ठ पर एक आईफ्रेम के भीतर एक बाहरी श्वेतसूची साइट शामिल करना है। बाहरी साइट पर कई पेज हैं और वे ऊंचाई में काफी भिन्न हैं।बाहरी यूआरएल

मुझे इसे समायोजित करने के लिए अपने आईफ्रेम की ऊंचाई समायोजित करने की आवश्यकता है।

मैं आईफ्रेम (PHP का उपयोग करके) में लोड किए गए पहले पृष्ठ की ऊंचाई प्राप्त कर सकता हूं, लेकिन बाद के पृष्ठ ऊंचाइयों को प्राप्त करने का कोई तरीका नहीं है क्योंकि यह जानने का कोई तरीका नहीं है कि iframe में यूआरएल/स्थान क्या बदलता है।

चूंकि यह आईफ़्रेम में बाहरी यूआरएल है, तो सामान्य सुरक्षा सीमाएं लागू होती हैं, इसलिए सभी समाधान मूल फ्रेम से आते हैं। समाधान कम से कम एफएफ और आईई पर काम करने योग्य होना चाहिए।

एकमात्र ऐसा विचार जो मैं सोच सकता हूं यह जांचना है कि स्क्रॉलबार आईफ्रेम पर दिखाई दे रहे हैं, लेकिन इन परिस्थितियों में यह असंभव है।

यदि कोई मुझे गलत साबित कर सकता है, या कोई अन्य जावास्क्रिप्ट/AJAX/PHP क्रॉस-ब्राउज़र समाधान है तो मुझे यह सुनना अच्छा लगेगा।

+0

यह प्रश्न देखें: http://stackoverflow.com/questions/466672/set-iframe-to-height-of-content-for-remote-content – Zach

+0

हाँ मैंने यह प्रश्न देखा। लेकिन यहां मैंने इसे जोर से कहा "सभी समाधान मूल फ्रेम से आना चाहिए"। मैंने जो अधिकांश सुझावों को देखा है उनमें दूरस्थ पृष्ठ पर किसी प्रकार का कोडिंग शामिल है। – Owen

उत्तर

8

यह संभव नहीं है ब्राउज़र के सुरक्षा मॉडल की वजह से ऐसा करने के लिए। यदि यह संभव था, तो यह एक सुरक्षा समस्या होगी और इसे ठीक करना होगा।

हालांकि एम्बेडिंग साइट को पृष्ठ में एम्बेड किए जाने पर किसी तीसरे पक्ष के वेबपृष्ठ की ऊंचाई को हानिरहित लगता है, यह एम्बेडिंग साइट पर जानकारी को रिसाव कर सकता है जिसे ब्राउज़र का उपयोगकर्ता निजी रखना चाहता है। उदाहरण के लिए, http://www.facebook.com/ इस पर निर्भर करता है कि आप लॉग इन हैं या नहीं, इसलिए यदि मेरी वेबसाइट <iframe src="http://www.facebook.com/"> की ऊंचाई को काम कर सकती है तो मैं काम कर सकता हूं कि आप एक फेसबुक उपयोगकर्ता हैं या नहीं, शायद आप मुझे नहीं चाहते हैं जानना।

सूचना रिसाव कुख्यात CSS History Leak के समान होगा, जिसमें यह उस साइट पर "लिंकिंग" द्वारा तीसरे पक्ष की साइट के साथ उपयोगकर्ता के रिश्ते के बारे में जानकारी प्रकट करेगा (इस मामले में किसी लिंक के बजाय आईफ्रेम के साथ) । ब्राउज़र विक्रेताओं को सीएसएस इतिहास लीक को प्लग करना पड़ा, इसलिए मुझे संदेह है कि क्या आप किसी भी ब्राउज़र में आईफ्रेम में प्रदान की गई किसी तृतीय पक्ष साइट की ऊंचाई को काम कर सकते हैं, तो विक्रेता को भी इसे ठीक करना होगा।

लीक की गई जानकारी कुछ भी होगी जो किसी पृष्ठ की ऊंचाई से अनुमानित किया जा सकता है जब उपयोगकर्ता अपनी कुकीज़ का उपयोग करके प्रस्तुत किया जाता है (जो ब्राउजर एक अलग डोमेन पेज के अंदर एक आईफ्रेम में प्रतिपादन के बावजूद भेज देगा)। विशिष्ट जोखिम पूरी तरह से एम्बेडेड साइट की प्रकृति पर "हमला" होने पर निर्भर करते हैं। जैसे मुझे यह पता चल सकता है कि मेरी साइट पर आने वाले किसी भी स्टैकओवरफ्लो गतिविधि में https://stackoverflow.com/reputation की ऊंचाई प्राप्त हो रही है जो विभिन्न उपयोगकर्ताओं के लिए अलग है।

+0

हमम .. मुझे और 500 मिलियन अन्य ;-) आपके पास अज्ञात जानकारी है, यानी, कुछ लॉग इन है। – Owen

+3

बिल्कुल नहीं। मुझे पता है कि आप, मेरे वेबपृष्ठ को देखने वाले व्यक्ति को लॉग इन किया गया है। मुझे आपको फ़िशिंग हमले को बेहतर तरीके से लक्षित करने का मौका देता है। फेसबुक के बजाए, मैं गुप्त रूप से काम कर सकता था कि आप किस 37 अलग-अलग बैंकिंग साइटों का उपयोग करते हैं। ध्यान दें कि लीक की गई जानकारी सीएसएस हिस्ट्री लीक के समान है जो काफी हलचल और एक स्क्रैबल तय करने के कारण होती है, http://blog.mozilla.com/security/2010/03/31/plugging-the-css-history- रिसाव/यदि आप उस से परिचित नहीं हैं। – Day

+0

पैरेंट फ्रेम के नियंत्रण में होने के नाते आप पहले यूआरएल (फेसबुक या बैंक) को जानते हैं जो आईफ्रेम में लोड होता है। साथ शुरू करने के लिए कोई रहस्य नहीं है। यह सीएसएस इतिहास रिसाव के समान नहीं है (लिंक के लिए धन्यवाद) लेकिन आपकी साइट से बाहर निकलने के लिए उपयोग किए जाने वाले हाइपरलिंक को जानने के लिए अधिक तुलनीय है। आपको प्राप्त होने वाला एकमात्र "अतिरिक्त" यह है कि उपयोगकर्ता के पास दूरस्थ साइट पर लॉगिन है ... जो आपके लिए कोई आश्चर्य नहीं है क्योंकि वे यूआरएल को आपके द्वारा प्रदान किए गए यूआरएल का उपयोग कर रहे हैं। दूसरे शब्दों में, यह जानकारी वैसे भी एक उचित अनुमान होगा। – Owen

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