2009-06-23 7 views
7

का उपयोग करके मेरी साइट को देखने से किसी को भी रोकें मैंने देखा और कोशिश की लेकिन मुझे नहीं पता कि मैं कुछ लोगों को IFrame या Thickbox के माध्यम से अपनी साइट ब्राउज़ करने में सक्षम क्यों कर सकता हूं?किसी IFrame

मैं प्रतिबंधित सदस्यों को प्रॉक्सी साइट्स के माध्यम से साइट तक पहुंचने से रोकना चाहता हूं जो अंतिम उपयोगकर्ता को आईफ्रेम के माध्यम से ब्राउज़ करने की क्षमता प्रदान करता है। मुझे पता है कि कुछ भी पूर्ण प्रमाण नहीं हो सकता है लेकिन यह अभी भी सवाल के लायक है।

उत्तर

15

की जांच करें ताकि के अपने जेफ एटवुड के इस समस्या के बारे में टिप्पणी ...

Coding Horror - We Done Been ... Framed!

क्या यह करने पर निर्भर करता है कि वहाँ कोई है यह करने के लिए विश्वसनीय तरीका। आप फ्रेम ब्रेकआउट का प्रयास कर सकते हैं, लेकिन दुर्भावनापूर्ण कोडर हमेशा थोड़ा और कोड जोड़ सकते हैं और आपके द्वारा जोड़े जा सकने वाले किसी भी "सुरक्षा" को प्राप्त कर सकते हैं।

+0

मुझे इसे मारो। मैं अपना जवाब हटा रहा हूं क्योंकि यह आपके बारे में लगभग एक सटीक डुप्लिकेट है। – Travis

+1

उनके जेफ एटवुड ब्लॉग पोस्ट की प्रतिक्रिया थी जो काम करता है (और वास्तव में, जेफ एटवुड अपने ब्लॉग पोस्ट में उनके काम को संदर्भित करता है), मैंने जवाब में अपना जवाब अपडेट कर दिया है। जो पोस्ट मैं देता हूं वह नया है, यह सिर्फ 5 दिन पुराना है। – cgp

+0

टूटा लिंक ... बेकार जवाब :( – Salketer

8

आह, लेकिन responseJeff Atwoods blog post पर है। (विरोधी विरोधी फ्रेम ब्रेकआउट) यह संभव है

Go figure, it was a question on Stackoverflow as well. अनुमान लगाया गया कौन? जवाब लिंक मैं पोस्ट के समान है:

if(top != self) { 
top.onbeforeunload = function() {}; 
top.location.replace(self.location.href); 
} 
+0

इन विधियों नहीं हैं में इस सरल js कोशिश कर सकते हैं, लेकिन जैसा कि दूसरी कड़ी के द्वारा दिखाया एक और तरीका नहीं है,। – cgp

+0

क्या होता है यदि मैं शीर्ष पृष्ठ पर एक नई (खाली) चेतावनी() विधि परिभाषित करता हूं ... बच्चे का कौन सा संस्करण कॉल करेगा? दिलचस्प समाप्ति, लेकिन अगर बच्चे को गलत विधि कहा जाता है ... खाली चेतावनी() चेतावनी को दिखाए जाने से रोकती है, इस प्रकार एंटी-एंटी-विरोधी फ्रेम ब्रेकआउट को रोकती है। –

+0

... कुछ भी नहीं होता है। जैसे मैंने उम्मीद की। रवींद्र। कोड गोल्फ के लिए एक अच्छा उम्मीदवार की तरह लगता है! –

1

altCognito सही है, आप फ्रेम ब्रेकआउट को बस्ट करना चाहते हैं।

नीचे the post altCognito से स्रोत कोड नीचे भेजा गया है।

<script type="text/javascript"> 
if (top.location != self.location) 
top.location = self.location; 
</script> 

हालांकि, मुझे लगता है कि आप इसके साथ आगे बढ़ना भी चाहेंगे। आप न केवल शीर्ष की तलाश में चेक की एक श्रृंखला चाहते हैं, लेकिन पैरेंट और विंडो की तलाश कर सकते हैं।

<script type="text/javascript"> 

var self = self.location; 
var top = top.location; 
var parent = parent.location; 
var window = window.location; 

if (top != self || parent != self || window != self ) 
window = self; 
</script> 
0
<script> 
    var isInIframe = (window.location != window.parent.location) ? true : false; 

    if(isInIframe) 
    { 
    alert("Window is in iframe"); 
    //Do what you want 
    //top.location.href=self.location; 
    } 
    else 
    { 
    alert("Window is not in iframe"); 
    } 
</script> 
0

आप अपने हेडर फाइल

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