2015-10-30 5 views
25

किसी ने मेरे वेबसाइट iframing,iframe sandbox को बाईपास करना?

<iframe src="http://example.org" sandbox=""></iframe> 

इस तरह का उपयोग कर, सैंडबॉक्स विशेषता मेरी साइट पर यह आइफ्रेम अवरोधक का उपयोग करने से रोकता है। और यह आसानी से iframed किया जा सकता है।

अपनी वेबसाइट पर

फ्रेम बस्टर:

if (window.top !== window.self) window.top.location.replace(window.self.location.href); 

वहाँ एक कार्यक्रम संबंधी रास्ता अपनी साइट के लिए रीडायरेक्ट करने के लिए जब इसकी जब सैंडबॉक्स विशेषता के साथ प्रयोग किया जा रहा है IFrame की है?

+0

अन्य विकल्पों के अलावा, आप [ 'X- फ़्रेम-Options' HTTP प्रतिक्रिया हेडर] (https पर विचार हो सकता:

पूरी तरह से तैयार (X-Frame-Options: DENY के समान) की अनुमति नहीं देने के लिए, इस HTTP शीर्ष लेख का उपयोग करें: //developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options)। – Palpatim

+0

आईफ्रेम और फ्रेमकिल्लर्स [विकी] (https://en.wikipedia.org/wiki/Framekiller), [iFrame विशेषता - एचटीएमएल 5 और सुरक्षा] के बारे में जानकारी पर अधिक जानकारी (https://www.tinfoilsecurity.com/blog/protect -याउ-वेबसाइट-से-एम्बेडेड-सामग्री-आईफ्रेम-सुरक्षा) – yjs

उत्तर

16

Iframing, X-Frame-Options प्रतिक्रिया हेडर के माध्यम से संरक्षित किया जा सकता है या तो X-Frame-Optionsvalue="DENY" या X-Frame-Optionsvalue="SAMEORIGIN" निर्धारित किया है। इस प्रतिक्रिया के माध्यम से हेडर सेटिंग्स आप IFraming या क्लिकजैक हमले के खिलाफ अपनी वेबसाइट की रक्षा कर सकते हैं।

एक बार X-Frame-Options प्रतिक्रिया शीर्षलेख सेट किया गया है, ब्राउज़र को एक मानक संदेश प्राप्त होता है जैसे "यह सामग्री फ्रेम में प्रदर्शित नहीं की जा सकती"।

+0

उस के साथ, यह मेरा पृष्ठ सही नहीं दिखाएगा? लेकिन जैसा कि मैंने पाठ को बोल्ड किया था, मैं चाहता हूं कि यह मेरे पृष्ठ पर रीडायरेक्ट हो। – user198989

+0

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

10

सैंडबॉक्स विशेषता अन्य चीजों के साथ सभी जावास्क्रिप्ट को बंद कर रही है। यही कारण है कि आपका फ्रेम बस्टर काम नहीं करेगा, न ही किसी अन्य जावास्क्रिप्ट ने प्रदान किया है। एकसैंडबॉक्स की

W3 कहते हैं:

  • लिपियों iframe के भीतर/विकलांग अनुमति नहीं है अन्य ब्राउज़िंग संदर्भों को
  • लिंक iframe के भीतर/विकलांग

एक परीक्षण पता चलता है कि अनुमति नहीं है विशेषता मेटा रीडायरेक्ट को अक्षम करता है और आईफ्रेम से बाहर निकलने वाला कोई मानक लिंक भी अक्षम करता है।

इस कठोरता के साथ, अगर कोई रीडायरेक्ट संभव हो तो मुझे आश्चर्य होगा, क्योंकि यह सैंडबॉक्स के बिंदु को हरा देगा।

सबसे अच्छा मैं सुझाव दे सकता हूं कि पृष्ठ को सैंडबॉक्स किए गए आईफ्रेम में पृष्ठ देखने वाले उपयोगकर्ताओं को एक संदेश प्रदर्शित करने के लिए नोस्क्रिप्ट टैग का उपयोग करना होगा। आप शैली बना सकते हैं ताकि लोग आपकी सामग्री नहीं देख सकें।

+0

सैंडबॉक्स = "अनुमति-स्क्रिप्ट" के साथ उपयोग किया जाने वाला एक और व्यक्ति, इसलिए कहें कि हम जावास्क्रिप्ट चला सकते हैं। मुख्य iframed साइट पर रीडायरेक्ट करने के लिए सबसे अच्छा तरीका क्या हो सकता है? – user198989

+0

उन्हें काम करने के लिए अनुमति-शीर्ष-नेविगेशन की आवश्यकता होगी। अनुमति-स्क्रिप्ट भी iframe छोड़ने की अनुमति नहीं है। –

+0

यदि यह भी जोड़ा गया था, तो पुनर्निर्देशन के लिए दृष्टिकोण क्या हो सकता है? – user198989

2

मुझे लगता है कि सबसे अच्छी बात आप कर सकते हैं एक target="top" लिंक के साथ अपना खुद का संदेश दिखाने है (यदि यह सिर्फ एक साइट एक समस्या जा रहा है, तो उन्हें इनको साथ अवरुद्ध शायद एक बेहतर दृष्टिकोण होगा है)। सैंडबॉक्स विशेषता की पूरी अवधारणा रीडायरेक्ट को अस्वीकार करना है। इसे बाईपास करने का कोई तरीका नहीं है और यदि आपको कभी भी एक ब्राउज़र निर्माता मिलते हैं तो इसे रोकने के लिए शायद एक रास्ता मिल जाएगा। यह स्पष्ट रूप से उनका इरादा है।

यह वेब काम करता है। ब्राउज़रों की बात करते समय आप जो कुछ भी चाहते हैं वह नहीं कर सकते हैं। विशेष रूप से frame-ancestorsdirective -

0

@X-Frame-Options कार्यों के SudiptaKumarMaiti का जवाब है, लेकिन सामग्री सुरक्षा नीति (सीएसपी) स्तर 2 ने ले जा रहा है।

Content-Security-Policy: frame-ancestors 'none';