438

Let's say you don't want other sites to "frame" your site in an <iframe>:

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

So you insert anti-framing, frame busting JavaScript into all your pages:

/* break us out of any containing iframes */
if (top != self) { top.location.replace(self.location.href); }

Excellent! Now you "bust" or break out of any containing iframe automatically. Except for one small problem.

As it turns out, your frame-busting code can be busted, as shown here:

<script type="text/javascript">
    var prevent_bust = 0  
    window.onbeforeunload = function() { prevent_bust++ }  
    setInterval(function() {  
      if (prevent_bust > 0) {  
        prevent_bust -= 2  
        window.top.location = 'http://example.org/page-which-responds-with-204'  
      }  
    }, 1)  
</script>

This code does the following:

  • increments a counter every time the browser attempts to navigate away from the current page, via the window.onbeforeunload event handler
  • sets up a timer that fires every millisecond via setInterval(), and if it sees the counter incremented, changes the current location to a server of the attacker's control
  • that server serves up a page with HTTP status code 204, which does not cause the browser to navigate anywhere

My question is -- and this is more of a JavaScript puzzle than an actual problem -- how can you defeat the frame-busting buster?

I had a few thoughts, but nothing worked in my testing:

  • attempting to clear the onbeforeunload event via onbeforeunload = null had no effect
  • adding an alert() stopped the process let the user know it was happening, but did not interfere with the code in any way; clicking OK lets the busting continue as normal
  • I can't think of any way to clear the setInterval() timer

I'm not much of a JavaScript programmer, so here's my challenge to you: hey buster, can you bust the frame-busting buster?

David Archer
  • 2,121
  • 1
  • 15
  • 26
Jeff Atwood
  • 63,320
  • 48
  • 150
  • 153
  • I don't have the means to test this at the moment, but it seems like the only way to block the very fast timer in the top page is to actively block the single javascript thread the browser has with an infinite loop. What I don't know is if the brower will be able to reload the top page while this is going on. top.location.replace(self.location.href); while(true) { } – Steve Reed Jun 06 '09 at 04:45
  • 6
    I'm not sure the frame-buster-buster actually works...when I try to test it (redirecting to a handler I set up to return a 204), it prevents me from navigating _anywhere_ outside the page--including typing stuff in the address bar! I have to close down the browser tab and open a new one in order to get anywhere. So in other words, I'm not sure this needs a solution, because the frame-buster-buster wanting to be busted is...busted to start with. :) (Either that or I screwed up my test, which could never happen...) ;) – Matt Winckler Jun 06 '09 at 05:04
  • 16
    Matt, the frame-buster-buster code posted above *definitely* works. A.. uh.. friend.. of mine.. told me .. about it. Or something. :) – Jeff Atwood Jun 06 '09 at 05:07
  • ... like using instead of window.onbeforeunload or something like that ;] – Daniel LeCheminant Jun 06 '09 at 05:22
  • 2
    well, I say to that .. top.document.body.onbeforeunload = null; :) – Jeff Atwood Jun 06 '09 at 06:49
  • 10
    Jeff, are you testing with both windows on the same domain? It looks like you are because if you weren't then security restrictions would prevent you from modifying 'onBeforeUnload' – James Jun 06 '09 at 08:23
  • 29
    On a side note: When posting examples, please use domains like `example.org` as specified in RFC 2606 http://www.ietf.org/rfc/rfc2606.txt – Christoph Jun 06 '09 at 09:49
  • 1
    @Matt Winckler - I agree. The buster-buster code seems very unreliable. Testing on Firefox 2 and 3, I got the same behaviour as you. In IE6,7,8, Safari 3, Opera 9.6, Chrome 2 it had no effect. – Alohci Jun 06 '09 at 11:47
  • @Steve Reed - while(true) just freezes the page, but using that idea, adding a short pause there works. By the time the interval code gets access to the thread, it's too late, and the contained page has busted out. – Alohci Jun 07 '09 at 11:52
  • I just updated my answer, please give it a try. – Josh Stodola Jun 18 '09 at 16:08
  • 2
    Just out of curiosity, why would you want to do this? This sounds like it was invented by the people who wanted to stop everyone from right clicking on their page... – Zifre Jun 18 '09 at 16:19
  • 2
    http://www.youtube.com/watch?v=Iw3G80bplTg For those who don't get the reference. NSFW *profanity* – ahawker Jun 19 '09 at 04:54
  • 3
    Regarding the general theme of counter-counter-countermeasures: http://galactanet.com/comic/view.php?strip=209 – Joey Nov 23 '09 at 14:20
  • This guy has a question about your frame buster: http://stackoverflow.com/questions/2298439/how-to-implement-a-frame-buster/2298476#2298476 . Jeff or someone should help out this guy. – rook Feb 19 '10 at 18:21
  • Jeff, stackoverflow's frame-buster-buster-buster isn't working in Chrome 10.0.634.0 dev on Windows XP SP3. After clicking "OK" the page is blank (all white) and the iframe src is reported as http://www.stackoverflow.com/. The `src` of the iframe is set dynamically. – David Murdoch Jan 20 '11 at 18:22
  • 1
    @david we don't support beta browsers.. period. – Jeff Atwood Jan 20 '11 at 19:50
  • 1
    psh, this isn't a beta! Its cutting edge! haha. I just figured you'd like to know as the frame-bustin` will probably not work in a couple weeks/months when the stable channel catches up. – David Murdoch Jan 20 '11 at 22:21
  • 2
    Related [X-Frame-Options Mozilla spec](https://developer.mozilla.org/en/The_X-FRAME-OPTIONS_response_header) browser support to avoid clickjacking etc. – makerofthings7 Oct 07 '11 at 15:40
  • If you want to test your buster buster buster, I made a [page that frames any given URL](http://how.appspot.com/frame). – Ivo Danihelka Nov 10 '09 at 20:12
  • Matt, for what it's worth, if using JQuery, you can re-enable all the links on your page after implementing the framebuster-buster with something like `$("a").click(function() { prevent_bust--; });` at the bottom of the page – Chase Finch Aug 20 '12 at 18:04
  • 1
    @MattWinckler, I replicated your problem of not being able to click on anything. What I did was clear the interval after the first "onbeforeunload" to kick in. Since the frame will be the very first one to trigger that, succeeding events (such as link click) won't be blocked anymore. Code: `var prevent_bust = 0 window.onbeforeunload = function() { prevent_bust++ } var interval = setInterval(function() { if (prevent_bust > 0) { prevent_bust -= 2; window.top.location = 'example.org/204.php'; clearInterval(interval); } }, 1);` – Ardee Aram Mar 18 '13 at 00:56
  • 2
    A couple iterations later, and we'll be seeing a frame buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster buster – geoff Jul 06 '14 at 00:52
  • Does the above frame busting..buster code work today in modern browsers? It doesn't appear to work for me against: Also, where do we find a server that returns 204? – Bryce Feb 04 '17 at 15:49
  • CSP is the way to go these days, per this Answer: https://stackoverflow.com/a/31288040/339440 . Note that a determined abuser can simply pull your page and reproduce it themselves from the back end, so there's no way to absolutely prevent somebody from duplicating your content on their site. – Stephen R Dec 03 '19 at 16:48
  • that busting frame-busting code sample is non deterministic, it depends on who won the race condition of onbeforeunload and setInterval, also sometimes I cannot type/click anything, this may be for the setInterval waking up every 1 ms – Shaikhul Feb 19 '21 at 04:32

20 Answers20

211

FWIW, most current browsers support the X-Frame-Options: deny directive, which works even when script is disabled.

IE8:
http://blogs.msdn.com/ie/archive/2009/01/27/ie8-security-part-vii-clickjacking-defenses.aspx

Firefox (3.6.9)
https://bugzilla.mozilla.org/show_bug.cgi?id=475530
https://developer.mozilla.org/en/The_X-FRAME-OPTIONS_response_header

Chrome/Webkit
http://blog.chromium.org/2010/01/security-in-depth-new-security-features.html
http://trac.webkit.org/changeset/42333

YenHub
  • 81
  • 6
EricLaw
  • 56,563
  • 7
  • 151
  • 196
  • 6
    excellent, supporting this in the browser .exe is the way to go without a doubt. When you say "most browsers", which ones specifically? I can't find good sources for anything but IE8. – Jeff Atwood Mar 29 '10 at 21:50
  • 2
    Here's a test page: http://www.enhanceie.com/test/clickjack/. Chrome 4.1.249.1042 supports. Opera 10.50 supports. Firefox 3.6.2 does NOT yet support. Safari 4.0.3 supports. – EricLaw Mar 30 '10 at 19:27
  • 1
    Firefox 3.6.9 will support it natively ( http://hackademix.net/2010/08/31/x-frame-options-finally-on-vanilla-firefox/ ) and any Firefox install with NoScript has had it since the beginning of 2009 ( http://hackademix.net/2009/01/29/x-frame-options-in-firefox/ ) – ssokolow Aug 31 '10 at 05:47
  • @JeffAtwood The latest versions of Chrome, FF, IE, Opera, Safari all support it. – Pacerier Jul 03 '12 at 14:58
  • 4
    It's best to combine this with the javascript framebuster. – Jesse Weigert Dec 28 '12 at 23:40
  • 1
    Or combine this with the December '12 answer on this page: http://stackoverflow.com/a/13708510/328397 – makerofthings7 Mar 28 '13 at 18:44
  • X-Frame-Options are HTTP Headers not HTML Headers so it makes sense they work even with no-script on. – Pogrindis Aug 27 '13 at 10:48
  • @Pogrindis: ssokolow's point was that, prior to the introduction of native support in Firefox 3.6.9, you could get support for X-Frame-Options by having the NoScript addon installed. – EricLaw Aug 27 '13 at 17:35
  • @EricLaw i missed that! Fair enough! – Pogrindis Aug 28 '13 at 08:54
  • Looks like [this is the approach now in use on stackoverflow](http://meta.stackexchange.com/a/195074/145673) – Martin Smith Aug 29 '13 at 11:11
150

I'm not sure if this is viable or not - but if you can't break the frame, why not just display a warning. For example, If your page isn't the "top page" create a setInterval method that tries to break the frame. If after 3 or 4 tries your page still isn't the top page - create a div element that covers the whole page (modal box) with a message and a link like...

You are viewing this page in a unauthorized frame window - (Blah blah... potential security issue)

click this link to fix this problem

Not the best, but I don't see any way they could script their way out of that.

Community
  • 1
  • 1
hugoware
  • 35,731
  • 24
  • 60
  • 70
  • 2
    I have tried this and this works. Another piece that I like about this solution is that it brings to light to the user what kind of site he/she was on before going to your content. Sample Code: if (parent.frames.length > 0) { top.location.replace(document.location); setTimeout(function() { if (parent.frames.length > 0) { document.location = "http://www.google.com"; } }, 10); } – pope Jun 21 '09 at 02:55
  • Not only is this a good way of avoiding abuse, it's pretty friendly to sites who may want to iframe your site just to take a peek at it, though not to allow use of it. Ideally, I think a screenshot of the site's homepage should be used, with some explanation of why it can't be used in the iframe overlaid on top. – wheresrhys Feb 11 '10 at 18:19
  • 34
    This is how Facebook does it. – shamittomar Jan 24 '11 at 07:34
  • 2
    but maybe this could be exploited if the busting site in turn will create a false anti anti anti ... (dunno how much anti we are up to now) lighbox div for itself presenting a phishing link or whatever ... tbc – yunzen Oct 01 '11 at 15:12
  • 7
    Another idea would be to just wipeout the page completely with something like `document.write("");` (after you have established that it is being framed – gabeio Jun 24 '12 at 04:42
  • Keep in mind that a proxy can always be used to defeat any frame-buster. This is used by sites like Optimizely in their WYSIWYG editors. You'll see that instead of ` – Cooper Maruyama Nov 19 '14 at 22:41
38

We have used the following approach in one of our websites from http://seclab.stanford.edu/websec/framebusting/framebust.pdf

<style>
 body { 
 display : none   
}
</style>
<script>
if(self == top) {
document.getElementsByTagName("body")[0].style.display = 'block';
}
else{
top.location = self.location;
}
</script>
Dungeon Hunter
  • 19,827
  • 13
  • 59
  • 82
29

Came up with this, and it seems to work at least in Firefox and the Opera browser.

if(top != self) {
 top.onbeforeunload = function() {};
 top.location.replace(self.location.href);
}
Dogelismoツ
  • 19
  • 10
Jani Hartikainen
  • 42,745
  • 10
  • 68
  • 86
  • 3
    both Jani and Jeff's solution (once edited) are correct and work equivalently; giving Jani the accept because his solution worked right without any editing – Jeff Atwood Jun 06 '09 at 04:59
  • 29
    This will only work if the two windows are of the same domain; a rare occurrence when you want to escape from a frame. – James Jun 06 '09 at 08:17
  • If there are nested frames involved, you'll have to walk the frame chain and remove all `onbeforeunload` handlers, not just the one on top! – Christoph Jun 06 '09 at 09:01
  • 13
    important clarification: this worked for me because the iframe src= was being set dynamically, and thus the cross-domain policy was NOT in effect. J-P is absolutely right, in a static src= this wouldn't work. – Jeff Atwood Jun 07 '09 at 09:17
  • 5
    ok now can someone come up with a frame buster buster buster buster? – Epaga Jun 12 '09 at 14:45
  • Jeff, are you trying to say that setting the SRC to a different domain programmatically bypasses the cross-domain policy? If so, that seems like a ridiculous bug that you certainly should not rely on. – Josh Stodola Jun 18 '09 at 17:11
  • Additionally, if that is true, all the evil site has to do to counteract this is set the SRC on the server-side instead...? – Josh Stodola Jun 18 '09 at 17:12
27

Considering current HTML5 standard that introduced sandbox for iframe, all frame busting codes that provided in this page can be disabled when attacker uses sandbox because it restricts the iframe from following:

allow-forms: Allow form submissions.
allow-popups: Allow opening popup windows.
allow-pointer-lock: Allow access to pointer movement and pointer lock.
allow-same-origin: Allow access to DOM objects when the iframe loaded form same origin
allow-scripts: Allow executing scripts inside iframe
allow-top-navigation: Allow navigation to top level window

Please see: http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#attr-iframe-sandbox

Now, consider attacker used the following code to host your site in iframe:

<iframe src="URI" sandbox></iframe>

Then, all JavaScript frame busting code will fail.

After checking all frame busing code, only this defense works in all cases:

<style id="antiClickjack">body{display:none !important;}</style>
<script type="text/javascript">
   if (self === top) {
       var antiClickjack = document.getElementById("antiClickjack");
       antiClickjack.parentNode.removeChild(antiClickjack);
   } else {
       top.location = self.location;
   }
</script>

that originally proposed by Gustav Rydstedt, Elie Bursztein, Dan Boneh, and Collin Jackson (2010)

20

After pondering this for a little while, I believe this will show them who's boss...

if(top != self) {
  window.open(location.href, '_top');
}

Using _top as the target parameter for window.open() will launch it in the same window.

Nathan Osman
  • 71,149
  • 71
  • 256
  • 361
Josh Stodola
  • 81,538
  • 47
  • 180
  • 227
11

As of 2015, you should use CSP2's frame-ancestors directive for this. This is implemented via an HTTP response header.

e.g.

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

Of course, not many browsers support CSP2 yet so it is wise to include the old X-Frame-Options header:

X-Frame-Options: DENY

I would advise to include both anyway, otherwise your site would continue to be vulnerable to Clickjacking attacks in old browsers, and of course you would get undesirable framing even without malicious intent. Most browsers do update automatically these days, however you still tend to get corporate users being stuck on old versions of Internet Explorer for legacy application compatibility reasons.

SilverlightFox
  • 32,436
  • 11
  • 76
  • 145
6

All the proposed solutions directly force a change in the location of the top window. What if a user wants the frame to be there? For example the top frame in the image results of search engines.

I wrote a prototype where by default all inputs (links, forms and input elements) are disabled and/or do nothing when activated.

If a containing frame is detected, the inputs are left disabled and a warning message is shown at the top of the page. The warning message contains a link that will open a safe version of the page in a new window. This prevents the page from being used for clickjacking, while still allowing the user to view the contents in other situations.

If no containing frame is detected, the inputs are enabled.

Here is the code. You need to set the standard HTML attributes to safe values and add additonal attributes that contain the actual values. It probably is incomplete and for full safety additional attributes (I am thinking about event handlers) will probably have to be treated in the same way:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
  <head>
    <title></title>
    <script><!--
      function replaceAttributeValuesWithActualOnes( array, attributeName, actualValueAttributeName, additionalProcessor ) {
        for ( var elementIndex = 0; elementIndex < array.length; elementIndex += 1 ) {
          var element = array[ elementIndex ];
          var actualValue = element.getAttribute( actualValueAttributeName );
          if ( actualValue != null ) {
            element[ attributeName ] = actualValue;
          }

          if ( additionalProcessor != null ) {
            additionalProcessor( element );
          }
        }
      }

      function detectFraming() {
        if ( top != self ) {
          document.getElementById( "framingWarning" ).style.display = "block";
        } else {
          replaceAttributeValuesWithActualOnes( document.links, "href", "acme:href" );

          replaceAttributeValuesWithActualOnes( document.forms, "action", "acme:action", function ( form ) {
            replaceAttributeValuesWithActualOnes( form.elements, "disabled", "acme:disabled" );
          });
        }
      }
      // -->
    </script>
  </head>
  <body onload="detectFraming()">
    <div id="framingWarning" style="display: none; border-style: solid; border-width: 4px; border-color: #F00; padding: 6px; background-color: #FFF; color: #F00;">
      <div>
        <b>SECURITY WARNING</b>: Acme App is displayed inside another page.
        To make sure your data is safe this page has been disabled.<br>
        <a href="framing-detection.html" target="_blank" style="color: #090">Continue working safely in a new tab/window</a>
      </div>
    </div>
    <p>
      Content. <a href="#" acme:href="javascript:window.alert( 'Action performed' );">Do something</a>
    </p>
    <form name="acmeForm" action="#" acme:action="real-action.html">
      <p>Name: <input type="text" name="name" value="" disabled="disabled" acme:disabled=""></p>
      <p><input type="submit" name="save" value="Save" disabled="disabled" acme:disabled=""></p>
    </form>
  </body>
</html>
  • The problem with this is the frame-maker could use position:absolute to place active button on top of your inactive buttons and the user will just see your webpage and think they are clicking YOUR buttons. – jmucchiello Jun 21 '09 at 08:36
  • The warning message would still be shown, but of course it is easy to cover the link to the safe page as you suggest. But why go through all the trouble of framing my page to get people to click on a familiar button if you can simply copy the page and achieve the same effect? The code above mainly prevents clickjacking. If you show my page invisibly above another page it isn't possible to invoke actions on my site. – Johan Stuyts Jun 23 '09 at 12:21
  • If this is placed in an IE8 restricted zone frame or Chrome sandbox frame the Javascript will never run. I wonder what modifications are needed in those cases – makerofthings7 Mar 28 '13 at 18:49
6
if (top != self) {
  top.location.replace(location);
  location.replace("about:blank"); // want me framed? no way!
}
6

I'm going to be brave and throw my hat into the ring on this one (ancient as it is), see how many downvotes I can collect.

Here is my attempt, which does seem to work everywhere I have tested it (Chrome20, IE8 and FF14):

(function() {
    if (top == self) {
        return;
    }

    setInterval(function() {
        top.location.replace(document.location);
        setTimeout(function() {
            var xhr = new XMLHttpRequest();
            xhr.open(
                'get',
                'http://mysite.tld/page-that-takes-a-while-to-load',
                false
            );
            xhr.send(null);
        }, 0);
    }, 1);
}());

I placed this code in the <head> and called it from the end of the <body> to ensure my page is rendered before it starts arguing with the malicious code, don't know if this is the best approach, YMMV.

How does it work?

...I hear you ask - well the honest answer is, I don't really know. It took a lot of fudging about to make it work everywhere I was testing, and the exact effect that it has varies slightly depending on where you run it.

Here is the thinking behind it:

  • Set a function to run at the lowest possible interval. The basic concept behind any of the realistic solutions I have seen is to fill up the scheduler with more events than the frame buster-buster has.
  • Every time the function fires, try and change the location of the top frame. Fairly obvious requirement.
  • Also schedule a function to run immediately which will take a long time to complete (thereby blocking the frame buster-buster from interfering with the location change). I chose a synchronous XMLHttpRequest because it's the only mechanism I can think of that doesn't require (or at least ask for) user interaction and doesn't chew up the user's CPU time.

For my http://mysite.tld/page-that-takes-a-while-to-load (the target of the XHR) I used a PHP script that looks like this:

<?php sleep(5);

What happens?

  • Chrome and Firefox wait the 5 seconds while the XHR completes, then successfully redirect to the framed page's URL.
  • IE redirects pretty much immediately

Can't you avoid the wait time in Chrome and Firefox?

Apparently not. At first I pointed the XHR to a URL that would return a 404 - this didn't work in Firefox. Then I tried the sleep(5); approach that I eventually landed on for this answer, then I started playing around with the sleep length in various ways. I could find no real pattern to the behaviour, but I did find that if it is too short, specifically Firefox will not play ball (Chrome and IE seem to be fairly well behaved). I don't know what the definition of "too short" is in real terms, but 5 seconds seems to work every time.


If any passing Javascript ninjas want to explain a little better what's going on, why this is (probably) wrong, unreliable, the worst code they've ever seen etc I'll happily listen.

DaveRandom
  • 87,921
  • 11
  • 154
  • 174
5

Ok, so we know that were in a frame. So we location.href to another special page with the path as a GET variable. We now explain to the user what is going on and provide a link with a target="_TOP" option. It's simple and would probably work (haven't tested it), but it requires some user interaction. Maybe you could point out the offending site to the user and make a hall of shame of click jackers to your site somewhere.. Just an idea, but it night work..

4

If you add an alert right after the buster code, then the alert will stall the javascript thread, and it will let the page load. This is what StackOverflow does, and it busts out of my iframes, even when I use the frame busting buster. It also worked with my simple test page. This has only been tested in Firefox 3.5 and IE7 on windows.

Code:

<script type="text/javascript">
if (top != self){
  top.location.replace(self.location.href);
  alert("for security reasons bla bla bla");
}
</script>
Marius
  • 57,995
  • 32
  • 132
  • 151
4

Well, you can modify the value of the counter, but that is obviously a brittle solution. You can load your content via AJAX after you have determined the site is not within a frame - also not a great solution, but it hopefully avoids firing the on beforeunload event (I am assuming).

Edit: Another idea. If you detect you are in a frame, ask the user to disable javascript, before clicking on a link that takes you to the desired URL (passing a querystring that lets your page know to tell the user that they can re-enable javascript once they are there).

Edit 2: Go nuclear - if you detect you are in a frame, just delete your document body content and print some nasty message.

Edit 3: Can you enumerate the top document and set all functions to null (even anonymous ones)?

D'Arcy Rittich
  • 167,292
  • 40
  • 290
  • 283
  • Outlook (formerly Hotmail) 'goes nuclear' if it can't get out of a frame - it puts the the entire content of the `` inside a `` tag set to `display: none`. It's quite effective.</plaintext></span> –&nbsp;<a href="../../users/1421049/uinbays" title="7,236 reputation" class="comment-user ">uınbɐɥs</a> <span class="comment-date" dir="ltr"><a class="comment-link" href="../../questions/958997/frame-buster-buster-buster-code-needed#comment17915445_959010"><span title="2012-10-31T20:06:34.057 License: CC BY-SA 3.0" class="relativetime-clean">Oct 31 '12 at 20:06</span></a></span> </div> </div> </li> </ul> </div> </div> </div> </div> <a name="2305380"></a> <div id="answer-2305380" class="answer " data-answerid="2305380" data-ownerid="278025" data-score="3" itemprop="suggestedAnswer" itemscope="" itemtype="https://schema.org/Answer"> <div class="post-layout"> <div class="votecell post-layout--left"> <div class="js-voting-container grid jc-center fd-column ai-stretch gs4 fc-black-200" data-post-id="2305380"> <button class="js-vote-up-btn grid--cell s-btn s-btn__unset c-pointer"><svg aria-hidden="true" class="m0 svg-icon iconArrowUpLg" width="36" height="36" viewBox="0 0 36 36"><path d="M2 26h32L18 10 2 26z"></path></svg></button> <div class="js-vote-count grid--cell fc-black-500 fs-title grid fd-column ai-center" itemprop="upvoteCount" data-value="3">3</div> </div> </div> <div class="postcell post-layout--right"> <div class="s-prose js-post-body" itemprop="text"><p>If you look at the values returned by <code>setInterval()</code> they are usually single digits, so you can usually disable all such interrupts with a single line of code:</p> <pre><code>for (var j = 0 ; j &lt; 256 ; ++j) clearInterval(j) </code></pre></div> <div class="mb0"> <div class="mt16 grid gs8 gsy fw-wrap jc-end ai-start pt4 mb16"> <div class="grid--cell mr16 fl1 w96"></div> <div class="post-signature grid--cell"> <div class="s-user-card s-user-card"> <time class="s-user-card--time" datetime="edited Feb 21 '10 at 17:39">edited Feb 21 '10 at 17:39</time> <a href="../../users/56338/sth" class="s-avatar s-avatar__32 s-user-card--avatar"> <img class="s-avatar--image" src="../../users/profiles/56338.webp" data-jdenticon-width="32" data-jdenticon-height="32" data-jdenticon-value="sth" /> </a> <div class="s-user-card--info"> <a href="../../users/56338/sth" class="s-user-card--link">sth</a> <ul class="s-user-card--awards"> <li class="s-user-card--rep" title="reputation score">222,467</li> <li class="s-award-bling s-award-bling__gold" title="53 gold badges">53</li> <li class="s-award-bling s-award-bling__silver" title="283 silver badges">283</li> <li class="s-award-bling s-award-bling__bronze" title="367 bronze badges">367</li> </ul> </div> </div> </div> <div class="post-signature grid--cell"> <div class="s-user-card s-user-card"> <time class="s-user-card--time" datetime="answered Feb 21 '10 at 08:57">answered Feb 21 '10 at 08:57</time> <a href="../../users/278025/robin-nixon" class="s-avatar s-avatar__32 s-user-card--avatar"> <img class="s-avatar--image" src="../../users/profiles/278025.webp" data-jdenticon-width="32" data-jdenticon-height="32" data-jdenticon-value="Robin Nixon" /> </a> <div class="s-user-card--info"> <a href="../../users/278025/robin-nixon" class="s-user-card--link">Robin Nixon</a> <ul class="s-user-card--awards"> <li class="s-user-card--rep" title="reputation score">31</li> <li class="s-award-bling s-award-bling__bronze" title="2 bronze badges">2</li> </ul> </div> </div> </div> </div> </div> </div> <div class="post-layout--right js-post-comments-component"> </div> </div> </div> <a name="959020"></a> <div id="answer-959020" class="answer " data-answerid="959020" data-ownerid="111934" data-score="3" itemprop="suggestedAnswer" itemscope="" itemtype="https://schema.org/Answer"> <div class="post-layout"> <div class="votecell post-layout--left"> <div class="js-voting-container grid jc-center fd-column ai-stretch gs4 fc-black-200" data-post-id="959020"> <button class="js-vote-up-btn grid--cell s-btn s-btn__unset c-pointer"><svg aria-hidden="true" class="m0 svg-icon iconArrowUpLg" width="36" height="36" viewBox="0 0 36 36"><path d="M2 26h32L18 10 2 26z"></path></svg></button> <div class="js-vote-count grid--cell fc-black-500 fs-title grid fd-column ai-center" itemprop="upvoteCount" data-value="3">3</div> </div> </div> <div class="postcell post-layout--right"> <div class="s-prose js-post-body" itemprop="text"><p>I think you were almost there. Have you tried:</p> <pre><code>window.parent.onbeforeunload = null; window.parent.location.replace(self.location.href); </code></pre> <p>or, alternatively:</p> <pre><code>window.parent.prevent_bust = 0; </code></pre> <p>Note: I didn't actually test this.</p></div> <div class="mb0"> <div class="mt16 grid gs8 gsy fw-wrap jc-end ai-start pt4 mb16"> <div class="grid--cell mr16 fl1 w96"></div> <div class="post-signature grid--cell"> <div class="s-user-card s-user-card"> <time class="s-user-card--time" datetime="edited Jun 06 '09 at 04:56">edited Jun 06 '09 at 04:56</time> <a href="../../users/1/jeff-atwood" class="s-avatar s-avatar__32 s-user-card--avatar"> <img class="s-avatar--image" src="../../users/profiles/1.webp" data-jdenticon-width="32" data-jdenticon-height="32" data-jdenticon-value="Jeff Atwood" /> </a> <div class="s-user-card--info"> <a href="../../users/1/jeff-atwood" class="s-user-card--link">Jeff Atwood</a> <ul class="s-user-card--awards"> <li class="s-user-card--rep" title="reputation score">63,320</li> <li class="s-award-bling s-award-bling__gold" title="48 gold badges">48</li> <li class="s-award-bling s-award-bling__silver" title="150 silver badges">150</li> <li class="s-award-bling s-award-bling__bronze" title="153 bronze badges">153</li> </ul> </div> </div> </div> <div class="post-signature grid--cell"> <div class="s-user-card s-user-card"> <time class="s-user-card--time" datetime="answered Jun 06 '09 at 04:48">answered Jun 06 '09 at 04:48</time> <a href="../../users/111934/jeff-meatball-yang" class="s-avatar s-avatar__32 s-user-card--avatar"> <img class="s-avatar--image" src="../../users/profiles/111934.webp" data-jdenticon-width="32" data-jdenticon-height="32" data-jdenticon-value="Jeff Meatball Yang" /> </a> <div class="s-user-card--info"> <a href="../../users/111934/jeff-meatball-yang" class="s-user-card--link">Jeff Meatball Yang</a> <ul class="s-user-card--awards"> <li class="s-user-card--rep" title="reputation score">37,839</li> <li class="s-award-bling s-award-bling__gold" title="27 gold badges">27</li> <li class="s-award-bling s-award-bling__silver" title="91 silver badges">91</li> <li class="s-award-bling s-award-bling__bronze" title="125 bronze badges">125</li> </ul> </div> </div> </div> </div> </div> </div> <div class="post-layout--right js-post-comments-component"> <div id="comments-959020" class="comments js-comments-container bt bc-black-075 mt12 " data-post-id="959020" data-min-length="15"> <ul class="comments-list js-comments-list" data-remaining-comments-count="0" data-canpost="false" data-cansee="true" data-comments-unavailable="false" data-addlink-disabled="true"> <li id="comment-767822" class="comment js-comment " data-comment-id="767822" data-comment-owner-id="1" data-comment-score="1"> <div class="js-comment-actions comment-actions"> <div class="comment-score js-comment-edit-hide"> <span title="number of 'useful comment' votes received" class="warm">1</span> </div> </div> <div class="comment-text js-comment-text-and-form"> <a name="comment767822_959020"></a> <div class="comment-body js-comment-edit-hide"> <span class="comment-copy">I edited your code sample (the test for parent seems to fail) but the edited version DOES appear to work!</span> –&nbsp;<a href="../../users/1/jeff-atwood" title="63,320 reputation" class="comment-user owner">Jeff Atwood</a> <span class="comment-date" dir="ltr"><a class="comment-link" href="../../questions/958997/frame-buster-buster-buster-code-needed#comment767822_959020"><span title="2009-06-06T04:57:19.997 License: CC BY-SA 2.5" class="relativetime-clean">Jun 06 '09 at 04:57</span></a></span> </div> </div> </li> <li id="comment-767826" class="comment js-comment " data-comment-id="767826" data-comment-owner-id="111934" data-comment-score="1"> <div class="js-comment-actions comment-actions"> <div class="comment-score js-comment-edit-hide"> <span title="number of 'useful comment' votes received" class="warm">1</span> </div> </div> <div class="comment-text js-comment-text-and-form"> <a name="comment767826_959020"></a> <div class="comment-body js-comment-edit-hide"> <span class="comment-copy">Cool. It's always tricky to answer with untested code - I do it to at least get the idea across - and let the poor asker debug. :)</span> –&nbsp;<a href="../../users/111934/jeff-meatball-yang" title="37,839 reputation" class="comment-user ">Jeff Meatball Yang</a> <span class="comment-date" dir="ltr"><a class="comment-link" href="../../questions/958997/frame-buster-buster-buster-code-needed#comment767826_959020"><span title="2009-06-06T05:00:56.733 License: CC BY-SA 2.5" class="relativetime-clean">Jun 06 '09 at 05:00</span></a></span> </div> </div> </li> <li id="comment-822015" class="comment js-comment " data-comment-id="822015" data-comment-owner-id="54420" data-comment-score="13"> <div class="js-comment-actions comment-actions"> <div class="comment-score js-comment-edit-hide"> <span title="number of 'useful comment' votes received" class="warm">13</span> </div> </div> <div class="comment-text js-comment-text-and-form"> <a name="comment822015_959020"></a> <div class="comment-body js-comment-edit-hide"> <span class="comment-copy">Won't work if parent is on a different domain, which is likely the case!</span> –&nbsp;<a href="../../users/54420/josh-stodola" title="81,538 reputation" class="comment-user ">Josh Stodola</a> <span class="comment-date" dir="ltr"><a class="comment-link" href="../../questions/958997/frame-buster-buster-buster-code-needed#comment822015_959020"><span title="2009-06-18T14:41:56.927 License: CC BY-SA 2.5" class="relativetime-clean">Jun 18 '09 at 14:41</span></a></span> </div> </div> </li> </ul> </div> </div> </div> </div> <a name="5057680"></a> <div id="answer-5057680" class="answer " data-answerid="5057680" data-ownerid="625295" data-score="2" itemprop="suggestedAnswer" itemscope="" itemtype="https://schema.org/Answer"> <div class="post-layout"> <div class="votecell post-layout--left"> <div class="js-voting-container grid jc-center fd-column ai-stretch gs4 fc-black-200" data-post-id="5057680"> <button class="js-vote-up-btn grid--cell s-btn s-btn__unset c-pointer"><svg aria-hidden="true" class="m0 svg-icon iconArrowUpLg" width="36" height="36" viewBox="0 0 36 36"><path d="M2 26h32L18 10 2 26z"></path></svg></button> <div class="js-vote-count grid--cell fc-black-500 fs-title grid fd-column ai-center" itemprop="upvoteCount" data-value="2">2</div> </div> </div> <div class="postcell post-layout--right"> <div class="s-prose js-post-body" itemprop="text"><p>I might just have just gotten a way to bust the frame buster buster javascript. Using the getElementsByName in my javascript function, i've set a loop between the frame buster and the actual frame buster buster script. check this post out. <a class="external-link" href="http://www.phcityonweb.com/frame-buster-buster-buster-2426" rel="nofollow">http://www.phcityonweb.com/frame-buster-buster-buster-2426</a></p></div> <div class="mb0"> <div class="mt16 grid gs8 gsy fw-wrap jc-end ai-start pt4 mb16"> <div class="grid--cell mr16 fl1 w96"></div> <div class="post-signature grid--cell"> <div class="s-user-card s-user-card"> <time class="s-user-card--time" datetime="answered Feb 20 '11 at 14:42">answered Feb 20 '11 at 14:42</time> <a href="../../users/625295/phcityonweb" class="s-avatar s-avatar__32 s-user-card--avatar"> <img class="s-avatar--image" src="../../users/profiles/625295.webp" data-jdenticon-width="32" data-jdenticon-height="32" data-jdenticon-value="Phcityonweb" /> </a> <div class="s-user-card--info"> <a href="../../users/625295/phcityonweb" class="s-user-card--link">Phcityonweb</a> <ul class="s-user-card--awards"> <li class="s-user-card--rep" title="reputation score">21</li> <li class="s-award-bling s-award-bling__bronze" title="1 bronze badges">1</li> </ul> </div> </div> </div> </div> </div> </div> <div class="post-layout--right js-post-comments-component"> </div> </div> </div> <a name="959349"></a> <div id="answer-959349" class="answer " data-answerid="959349" data-ownerid="48015" data-score="2" itemprop="suggestedAnswer" itemscope="" itemtype="https://schema.org/Answer"> <div class="post-layout"> <div class="votecell post-layout--left"> <div class="js-voting-container grid jc-center fd-column ai-stretch gs4 fc-black-200" data-post-id="959349"> <button class="js-vote-up-btn grid--cell s-btn s-btn__unset c-pointer"><svg aria-hidden="true" class="m0 svg-icon iconArrowUpLg" width="36" height="36" viewBox="0 0 36 36"><path d="M2 26h32L18 10 2 26z"></path></svg></button> <div class="js-vote-count grid--cell fc-black-500 fs-title grid fd-column ai-center" itemprop="upvoteCount" data-value="2">2</div> </div> </div> <div class="postcell post-layout--right"> <div class="s-prose js-post-body" itemprop="text"><p>What about calling the buster repeatedly as well? This'll create a race condition, but one may hope that the buster comes out on top:</p> <pre><code>(function() { if(top !== self) { top.location.href = self.location.href; setTimeout(arguments.callee, 0); } })(); </code></pre></div> <div class="mb0"> <div class="mt16 grid gs8 gsy fw-wrap jc-end ai-start pt4 mb16"> <div class="grid--cell mr16 fl1 w96"></div> <div class="post-signature grid--cell"> <div class="s-user-card s-user-card"> <time class="s-user-card--time" datetime="answered Jun 06 '09 at 09:20">answered Jun 06 '09 at 09:20</time> <a href="../../users/48015/christoph" class="s-avatar s-avatar__32 s-user-card--avatar"> <img class="s-avatar--image" src="../../users/profiles/48015.webp" data-jdenticon-width="32" data-jdenticon-height="32" data-jdenticon-value="Christoph" /> </a> <div class="s-user-card--info"> <a href="../../users/48015/christoph" class="s-user-card--link">Christoph</a> <ul class="s-user-card--awards"> <li class="s-user-card--rep" title="reputation score">164,997</li> <li class="s-award-bling s-award-bling__gold" title="36 gold badges">36</li> <li class="s-award-bling s-award-bling__silver" title="182 silver badges">182</li> <li class="s-award-bling s-award-bling__bronze" title="240 bronze badges">240</li> </ul> </div> </div> </div> </div> </div> </div> <div class="post-layout--right js-post-comments-component"> </div> </div> </div> <a name="1953495"></a> <div id="answer-1953495" class="answer " data-answerid="1953495" data-ownerid="57191" data-score="0" itemprop="suggestedAnswer" itemscope="" itemtype="https://schema.org/Answer"> <div class="post-layout"> <div class="votecell post-layout--left"> <div class="js-voting-container grid jc-center fd-column ai-stretch gs4 fc-black-200" data-post-id="1953495"> <button class="js-vote-up-btn grid--cell s-btn s-btn__unset c-pointer"><svg aria-hidden="true" class="m0 svg-icon iconArrowUpLg" width="36" height="36" viewBox="0 0 36 36"><path d="M2 26h32L18 10 2 26z"></path></svg></button> <div class="js-vote-count grid--cell fc-black-500 fs-title grid fd-column ai-center" itemprop="upvoteCount" data-value="0">0</div> </div> </div> <div class="postcell post-layout--right"> <div class="s-prose js-post-body" itemprop="text"><p>setInterval and setTimeout create an automatically incrementing interval. Each time setTimeout or setInterval is called, this number goes up by one, so that if you call setTimeout, you'll get the current, highest value.</p> <pre><code> var currentInterval = 10000; currentInterval += setTimeout( gotoHREF, 100 ); for( var i = 0; i &lt; currentInterval; i++ ) top.clearInterval( i ); // Include setTimeout to avoid recursive functions. for( i = 0; i &lt; currentInterval; i++ ) top.clearTimeout( i ); function gotoHREF(){ top.location.href = "http://your.url.here"; } </code></pre> <p>Since it is almost unheard of for there to be 10000 simultaneous setIntervals and setTimeouts working, and since setTimeout returns "last interval or timeout created + 1", and since top.clearInterval is still accessible, this will defeat the black-hat attacks to frame websites which are described above.</p></div> <div class="mb0"> <div class="mt16 grid gs8 gsy fw-wrap jc-end ai-start pt4 mb16"> <div class="grid--cell mr16 fl1 w96"></div> <div class="post-signature grid--cell"> <div class="s-user-card s-user-card"> <time class="s-user-card--time" datetime="answered Dec 23 '09 at 15:40">answered Dec 23 '09 at 15:40</time> <a href="../../users/57191/cwallenpoole" class="s-avatar s-avatar__32 s-user-card--avatar"> <img class="s-avatar--image" src="../../users/profiles/57191.webp" data-jdenticon-width="32" data-jdenticon-height="32" data-jdenticon-value="cwallenpoole" /> </a> <div class="s-user-card--info"> <a href="../../users/57191/cwallenpoole" class="s-user-card--link">cwallenpoole</a> <ul class="s-user-card--awards"> <li class="s-user-card--rep" title="reputation score">79,954</li> <li class="s-award-bling s-award-bling__gold" title="26 gold badges">26</li> <li class="s-award-bling s-award-bling__silver" title="128 silver badges">128</li> <li class="s-award-bling s-award-bling__bronze" title="166 bronze badges">166</li> </ul> </div> </div> </div> </div> </div> </div> <div class="post-layout--right js-post-comments-component"> </div> </div> </div> <a name="20666532"></a> <div id="answer-20666532" class="answer " data-answerid="20666532" data-ownerid="817152" data-score="0" itemprop="suggestedAnswer" itemscope="" itemtype="https://schema.org/Answer"> <div class="post-layout"> <div class="votecell post-layout--left"> <div class="js-voting-container grid jc-center fd-column ai-stretch gs4 fc-black-200" data-post-id="20666532"> <button class="js-vote-up-btn grid--cell s-btn s-btn__unset c-pointer"><svg aria-hidden="true" class="m0 svg-icon iconArrowUpLg" width="36" height="36" viewBox="0 0 36 36"><path d="M2 26h32L18 10 2 26z"></path></svg></button> <div class="js-vote-count grid--cell fc-black-500 fs-title grid fd-column ai-center" itemprop="upvoteCount" data-value="0">0</div> </div> </div> <div class="postcell post-layout--right"> <div class="s-prose js-post-body" itemprop="text"><p>Use htaccess to avoid high-jacking frameset, iframe and any content like images.</p> <pre><code>RewriteEngine on RewriteCond %{HTTP_REFERER} !^http://www\.yoursite\.com/ [NC] RewriteCond %{HTTP_REFERER} !^$ RewriteRule ^(.*)$ /copyrights.html [L] </code></pre> <p>This will show a copyright page instead of the expected.</p></div> <div class="mb0"> <div class="mt16 grid gs8 gsy fw-wrap jc-end ai-start pt4 mb16"> <div class="grid--cell mr16 fl1 w96"></div> <div class="post-signature grid--cell"> <div class="s-user-card s-user-card"> <time class="s-user-card--time" datetime="answered Dec 18 '13 at 19:14">answered Dec 18 '13 at 19:14</time> <a href="../../users/817152/b-f" class="s-avatar s-avatar__32 s-user-card--avatar"> <img class="s-avatar--image" src="../../users/profiles/817152.webp" data-jdenticon-width="32" data-jdenticon-height="32" data-jdenticon-value="B.F." /> </a> <div class="s-user-card--info"> <a href="../../users/817152/b-f" class="s-user-card--link">B.F.</a> <ul class="s-user-card--awards"> <li class="s-user-card--rep" title="reputation score">477</li> <li class="s-award-bling s-award-bling__silver" title="6 silver badges">6</li> <li class="s-award-bling s-award-bling__bronze" title="9 bronze badges">9</li> </ul> </div> </div> </div> </div> </div> </div> <div class="post-layout--right js-post-comments-component"> <div id="comments-20666532" class="comments js-comments-container bt bc-black-075 mt12 " data-post-id="20666532" data-min-length="15"> <ul class="comments-list js-comments-list" data-remaining-comments-count="0" data-canpost="false" data-cansee="true" data-comments-unavailable="false" data-addlink-disabled="true"> <li id="comment-76905482" class="comment js-comment " data-comment-id="76905482" data-comment-owner-id="1358179" data-comment-score="1"> <div class="js-comment-actions comment-actions"> <div class="comment-score js-comment-edit-hide"> <span title="number of 'useful comment' votes received" class="warm">1</span> </div> </div> <div class="comment-text js-comment-text-and-form"> <a name="comment76905482_20666532"></a> <div class="comment-body js-comment-edit-hide"> <span class="comment-copy">This relies on the referrer which is a) not always set (due to browser settings or extensions or simply because the referring page is using HTTPS without using `<meta name="referrer"/>` and b) also set when clicking on links, so you also disallow links to your page and break the web.</span> –&nbsp;<a href="../../users/1358179/martin" title="2,573 reputation" class="comment-user ">Martin</a> <span class="comment-date" dir="ltr"><a class="comment-link" href="../../questions/958997/frame-buster-buster-buster-code-needed#comment76905482_20666532"><span title="2017-07-07T07:49:40.467 License: CC BY-SA 3.0" class="relativetime-clean">Jul 07 '17 at 07:49</span></a></span> </div> </div> </li> </ul> </div> </div> </div> </div> <a name="63577764"></a> <div id="answer-63577764" class="answer " data-answerid="63577764" data-ownerid="11466287" data-score="0" itemprop="suggestedAnswer" itemscope="" itemtype="https://schema.org/Answer"> <div class="post-layout"> <div class="votecell post-layout--left"> <div class="js-voting-container grid jc-center fd-column ai-stretch gs4 fc-black-200" data-post-id="63577764"> <button class="js-vote-up-btn grid--cell s-btn s-btn__unset c-pointer"><svg aria-hidden="true" class="m0 svg-icon iconArrowUpLg" width="36" height="36" viewBox="0 0 36 36"><path d="M2 26h32L18 10 2 26z"></path></svg></button> <div class="js-vote-count grid--cell fc-black-500 fs-title grid fd-column ai-center" itemprop="upvoteCount" data-value="0">0</div> </div> </div> <div class="postcell post-layout--right"> <div class="s-prose js-post-body" itemprop="text"><p>You could improve the whole idea by using the <code>postMessage()</code> method to allow some domains to access and display your content while blocking all the others. First, the container-parent must introduce itself by posting a message to the <code>contentWindow</code> of the <code>iframe</code> that is trying to display your page. And your page must be ready to accept messages,</p> <pre><code>window.addEventListener("message", receiveMessage, false); function receiveMessage(event) { // Use event.origin here like if(event.origin == "https://perhapsyoucantrustthisdomain.com"){ // code here to block/unblock access ... a method like the one in user1646111's post can be good. } else{ // code here to block/unblock access ... a method like the one in user1646111's post can be good. } } </code></pre> <p>Finally don't forget to wrap things inside functions that will wait for <code>load</code> events.</p></div> <div class="mb0"> <div class="mt16 grid gs8 gsy fw-wrap jc-end ai-start pt4 mb16"> <div class="grid--cell mr16 fl1 w96"></div> <div class="post-signature grid--cell"> <div class="user-info "> <div class="user-action-time">edited <span title="2020-08-25T11:28:07.713" class="relativetime">Aug 25 '20 at 11:28</span></div> <div class="user-gravatar32"></div> <div class="user-details" itemprop="author" itemscope="" itemtype="http://schema.org/Person"> <span class="d-none" itemprop="name">HolyResistance</span> <div class="-flair"></div> </div> </div> </div> <div class="post-signature grid--cell"> <div class="s-user-card s-user-card"> <time class="s-user-card--time" datetime="answered Aug 25 '20 at 11:22">answered Aug 25 '20 at 11:22</time> <a href="../../users/11466287/holyresistance" class="s-avatar s-avatar__32 s-user-card--avatar"> <img class="s-avatar--image" src="../../users/profiles/11466287.webp" data-jdenticon-width="32" data-jdenticon-height="32" data-jdenticon-value="HolyResistance" /> </a> <div class="s-user-card--info"> <a href="../../users/11466287/holyresistance" class="s-user-card--link">HolyResistance</a> <ul class="s-user-card--awards"> <li class="s-user-card--rep" title="reputation score">594</li> <li class="s-award-bling s-award-bling__gold" title="1 gold badge">1</li> <li class="s-award-bling s-award-bling__silver" title="8 silver badge">8</li> <li class="s-award-bling s-award-bling__bronze" title="26 bronze badge">26</li> </ul> </div> </div> </div> </div> </div> </div> <div class="post-layout--right js-post-comments-component"> </div> </div> </div> </div> </div> <div id="sidebar" class="show-votes" role="complementary" aria-label="sidebar"> <div class="module sidebar-linked"> <h4 id="h-linked">Linked</h4> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">0</div></a> <a href="../../questions/27681949/anti-frame-breaker-on-firefox-and-ie" class="question-hyperlink">Anti frame breaker on Firefox and IE</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">2</div></a> <a href="../../questions/2181439/how-to-stop-gmail-from-maximizing-an-iframe" class="question-hyperlink">How to Stop Gmail from maximizing an iFrame?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">2</div></a> <a href="../../questions/28872931/how-to-differentiate-between-iframe-redirection-and-manual-redirection" class="question-hyperlink">How to differentiate between iframe redirection and manual redirection</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">314</div></a> <a href="../../questions/1131781/is-it-a-good-practice-to-use-an-empty-url-for-a-html-form-s-action-attribute-a" class="question-hyperlink">Is it a good practice to use an empty URL for a HTML form's action attribute? (action=&quot;&quot;)</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">1</div></a> <a href="../../questions/30920307/check-if-current-page-is-frame-with-javascript" class="question-hyperlink">Check if current page is frame with javascript</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">0</div></a> <a href="../../questions/31344695/unmasking-parasite-domains" class="question-hyperlink">Unmasking Parasite Domains</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">6</div></a> <a href="../../questions/32549385/check-whether-content-can-be-displayed-in-iframe-does-not-work" class="question-hyperlink">Check whether content can be displayed in iFrame does not work</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">0</div></a> <a href="../../questions/32757653/how-to-detect-whether-a-html-file-is-opened-in-browser-or-some-application-sof" class="question-hyperlink">How to detect whether a HTML file is opened in browser or some Application Software?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">2</div></a> <a href="../../questions/2298439/how-to-implement-a-frame-buster" class="question-hyperlink">How to implement a frame buster?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">-1</div></a> <a href="../../questions/34496760/iframe-is-not-working" class="question-hyperlink">&lt;iframe&gt; is not working</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">4</div></a> <a href="../../questions/4864019/what-is-this-window-top-check-performing-is-this-checking-for-an-iframe" class="question-hyperlink">what is this window.top check performing? is this checking for an iframe?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">19</div></a> <a href="../../questions/4461282/how-to-block-pop-up-coming-from-iframe" class="question-hyperlink">How to block pop-up coming from iframe?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">0</div></a> <a href="../../questions/43530845/iframe-automatically-redirects-to-destination-page-instead-of-staying-on-the-p" class="question-hyperlink">iframe automatically redirects to destination page instead of staying on the page it was framed</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">1</div></a> <a href="../../questions/48043845/how-to-sanitize-html-blob-uploads-in-python-in-google-app-engine" class="question-hyperlink">How to sanitize html blob uploads in python in Google App Engine?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">2</div></a> <a href="../../questions/48614873/bypassing-frame-buster" class="question-hyperlink">Bypassing Frame buster</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">60</div></a> <a href="../../questions/15532791/getting-around-x-frame-options-deny-in-a-chrome-extension" class="question-hyperlink">Getting around X-Frame-Options DENY in a Chrome extension?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">0</div></a> <a href="../../questions/62843469/does-a-http-200-response-imply-that-there-must-be-a-response-body" class="question-hyperlink">Does a HTTP 200 response imply that there must be a response body?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">0</div></a> <a href="../../questions/65741938/need-to-open-new-window-from-iframe" class="question-hyperlink">Need to open new window from iframe</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">1</div></a> <a href="../../questions/2415336/onbeforeunload-dilemma-iframe-breaking-vs-annoying-message-on-refresh-back-but" class="question-hyperlink">onbeforeunload dilemma: iframe breaking vs. annoying message on refresh/back buttons click</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">1</div></a> <a href="../../questions/3787978/what-do-you-mean-by-http-server-which-responds-with-204-com" class="question-hyperlink">What do you mean by http://server-which-responds-with-204.com?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">1</div></a> <a href="../../questions/3791527/is-there-any-other-way-besides-browser-extensions-that-one-could-have-a-gui-ba" class="question-hyperlink">Is there any other way besides browser extensions that one could have a GUI bar hover over any website a user visits?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">7</div></a> <a href="../../questions/5669151/iframes-vs-frames" class="question-hyperlink">Iframes Vs. Frames</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">5</div></a> <a href="../../questions/3838600/how-useful-is-the-x-frame-options-header-in-protecting-against-malicious-frami" class="question-hyperlink">How useful is the X-Frame-Options header in protecting against malicious framing?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">4</div></a> <a href="../../questions/821375/how-do-you-use-your-javascript-framework-to-prevent-clickjacking" class="question-hyperlink">How do you use your JavaScript framework to prevent Clickjacking?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">0</div></a> <a href="../../questions/5906277/javascript-close-redirect-page-upon-url-change" class="question-hyperlink">JavaScript Close/Redirect Page Upon URL Change</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">7</div></a> <a href="../../questions/1034571/stop-anyone-from-viewing-my-site-using-an-iframe" class="question-hyperlink">Stop Anyone From Viewing My Site Using an IFrame</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">0</div></a> <a href="../../questions/4022336/prevent-break-out-of-iframe" class="question-hyperlink">prevent break out of iframe</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">0</div></a> <a href="../../questions/1077442/access-top-window-document-from-iframe" class="question-hyperlink">access top window document from iframe</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">0</div></a> <a href="../../questions/3201352/how-can-i-prevent-the-subframe-from-changing-top-location-href" class="question-hyperlink">How can I prevent the subframe from changing &quot;top.location.href &quot;</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">2</div></a> <a href="../../questions/1149101/frame-buster-buster" class="question-hyperlink">Frame buster buster</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">0</div></a> <a href="../../questions/6884531/disable-the-javascript-and-meta-tag-from-other-html-page-by-using-javascript" class="question-hyperlink">Disable the javascript and meta tag from other HTML page by using Javascript</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">2</div></a> <a href="../../questions/4154821/html-title-on-a-redirected-site-managed-with-plesk-not-displaying-correctly" class="question-hyperlink">HTML &lt;title&gt; on a redirected site managed with Plesk not displaying correctly</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">2</div></a> <a href="../../questions/7364881/how-secure-is-the-same-origin-policy" class="question-hyperlink">How secure is the &quot;same origin policy&quot;?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">11</div></a> <a href="../../questions/7422300/checking-if-a-website-doesn-t-permit-iframe-embed" class="question-hyperlink">Checking if a website doesn't permit iframe embed</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">1</div></a> <a href="../../questions/7546067/stop-other-websites-iframing" class="question-hyperlink">Stop other websites iframing?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">3</div></a> <a href="../../questions/3823875/frame-breaking-only-cross-domain-but-not-for-iframes-from-the-same-origin" class="question-hyperlink">Frame breaking only cross-domain but not for iframes from the same origin?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">2</div></a> <a href="../../questions/7766372/how-to-disable-script-in-iframe-to-control-the-parent" class="question-hyperlink">how to disable script in iframe to control the parent?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">1</div></a> <a href="../../questions/7800109/prevent-javascript-from-popping-out-of-frame" class="question-hyperlink">Prevent javascript from popping out of frame</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">4</div></a> <a href="../../questions/1695616/how-to-gracefully-handle-iframe-breaker" class="question-hyperlink">How to gracefully handle iframe breaker?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">4</div></a> <a href="../../questions/7898503/can-you-beat-a-frame-breaker" class="question-hyperlink">Can you beat a frame breaker?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">0</div></a> <a href="../../questions/8203256/using-div-as-alternative-to-iframe" class="question-hyperlink">Using div as alternative to iframe</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">0</div></a> <a href="../../questions/3650036/javascript-detecting-framebusting-code" class="question-hyperlink">javascript detecting framebusting code</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">0</div></a> <a href="../../questions/3655357/how-gmail-open-in-iframe-and-stop-to-redirect-into-parent-page" class="question-hyperlink">How gmail open in iframe, and stop to redirect into parent page</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">2</div></a> <a href="../../questions/8467194/how-to-force-a-page-to-stay-inside-an-iframe" class="question-hyperlink">How to force a page to stay inside an iframe?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">1</div></a> <a href="../../questions/8795934/how-can-i-stop-loading-a-web-page-if-it-is-equiped-with-frame-buster-buster" class="question-hyperlink">How can I stop loading a web page if it is equiped with frame-buster buster?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">3</div></a> <a href="../../questions/8899632/html5-domain-locking" class="question-hyperlink">HTML5 domain locking?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">4</div></a> <a href="../../questions/1783199/what-does-the-javascript-snippet-mean" class="question-hyperlink">What does the javascript snippet mean?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">0</div></a> <a href="../../questions/9264662/how-to-prevent-iframe-page-redirect-parent-page" class="question-hyperlink">How to prevent iframe page redirect parent page?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">14</div></a> <a href="../../questions/1794974/using-js-how-can-i-stop-child-iframes-from-redirecting-or-at-least-prompt-user" class="question-hyperlink">Using JS how can I stop child Iframes from redirecting or at least prompt users about the redirect</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">4</div></a> <a href="../../questions/9947026/prevent-iframe-from-changing-parent-location" class="question-hyperlink">prevent iframe from changing parent location</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">0</div></a> <a href="../../questions/9996304/how-to-judge-a-page-is-in-a-iframe-use-javascript" class="question-hyperlink">how to judge a page is in a iframe use javascript?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">2</div></a> <a href="../../questions/4341306/how-to-get-event-of-self-location-change" class="question-hyperlink">How to get event of self.location change?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">0</div></a> <a href="../../questions/11004456/iframe-workaround-to-load-http-www-google-com-in-a-webkit-browser" class="question-hyperlink">iframe workaround to load http://www.google.com in a webkit browser</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">1</div></a> <a href="../../questions/11620703/maintain-redirection-inside-iframe" class="question-hyperlink">Maintain redirection inside iFrame</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">2</div></a> <a href="../../questions/11707838/rgd-javascript-redirect-top-parent-page" class="question-hyperlink">Rgd: Javascript redirect top parent page</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">0</div></a> <a href="../../questions/12031609/javascript-to-disable-onload-function-inside-an-iframe" class="question-hyperlink">Javascript to disable onload function inside an iframe</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">2</div></a> <a href="../../questions/12056889/framebuster-with-exceptions" class="question-hyperlink">Framebuster with exceptions</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">32</div></a> <a href="../../questions/12209657/how-can-i-sandbox-untrusted-user-submitted-javascript-content" class="question-hyperlink">How can I sandbox untrusted user-submitted JavaScript content?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">3</div></a> <a href="../../questions/12888332/checking-third-party-iframe-content" class="question-hyperlink">Checking Third-Party iFrame Content</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">1</div></a> <a href="../../questions/13168968/how-to-stop-my-website-being-framed-by-others" class="question-hyperlink">How to stop my website being framed by others?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">0</div></a> <a href="../../questions/13223931/how-do-i-prevent-a-site-in-a-iframe-from-refreshing-the-whole-site" class="question-hyperlink">How do I prevent a site in a iframe from refreshing the whole site?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">0</div></a> <a href="../../questions/13716714/detect-client-domain-name" class="question-hyperlink">Detect client domain name</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">10</div></a> <a href="../../questions/4419883/how-to-forbid-framing" class="question-hyperlink">How to forbid framing</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">0</div></a> <a href="../../questions/14491849/hide-referer-iframe" class="question-hyperlink">Hide referer iFrame</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">5</div></a> <a href="../../questions/12506092/how-to-make-sure-requests-are-from-my-website" class="question-hyperlink">How to make sure requests are from my website?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">1</div></a> <a href="../../questions/4512262/iframe-does-not-render-properly" class="question-hyperlink">Iframe does not render properly</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">-2</div></a> <a href="../../questions/16008232/i-need-to-protect-my-website-from-iframe-in-the-same-times-i-need-to-iframe-by" class="question-hyperlink">I need to protect my website from iframe. In the same times, i need to iframe by my own sites and some permitted website. How can i do this?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">14</div></a> <a href="../../questions/17967423/why-can-a-child-redirect-a-parent-frame" class="question-hyperlink">Why can a child redirect a parent frame?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">0</div></a> <a href="../../questions/18196401/preventing-clickjacking-attack-by-javascript" class="question-hyperlink">preventing clickjacking attack by javascript</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">2</div></a> <a href="../../questions/18196640/to-stop-clickjacking-which-one-is-more-secure-breaking-out-of-iframe-vs-x-fram" class="question-hyperlink">To stop ClickJacking, which one is more secure? breaking out of iframe vs X-Frame-Options to Deny or Same Origin</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">0</div></a> <a href="../../questions/18347188/how-to-embed-affiliate-link-in-a-frame" class="question-hyperlink">How to embed affiliate link in a frame?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">1</div></a> <a href="../../questions/2549290/scripted-iframe-loads-contents-over-current-page-instead-of-within-an-iframe" class="question-hyperlink">Scripted iFrame loads contents over current page instead of within an iFrame</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">1</div></a> <a href="../../questions/19089548/x-frame-option-sameorigin-and-clickjacking-in-asp-net" class="question-hyperlink">x-frame-option SAMEORIGIN and clickjacking in ASP.NET</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">15</div></a> <a href="../../questions/752465/preventing-child-iframe-from-breaking-out-of-frame" class="question-hyperlink">Preventing child iframe from &quot;breaking out of frame&quot;</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">3</div></a> <a href="../../questions/21258155/how-to-disable-open-asp-net-mvc-site-in-iframe" class="question-hyperlink">How to disable open ASP.NET MVC site in IFrame?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">1</div></a> <a href="../../questions/21506977/how-to-prevent-an-iframe-from-uniframing-itself" class="question-hyperlink">How to prevent an iframe from uniframing itself</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">4</div></a> <a href="../../questions/23352088/javascript-line-of-code-in-plain-english" class="question-hyperlink">Javascript line of code in plain english</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">0</div></a> <a href="../../questions/23741471/block-my-iframe-from-executing-top-location-href-inside-its-javascript" class="question-hyperlink">Block my iframe from executing top.location.href inside its javascript?</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">1</div></a> <a href="../../questions/26988329/certain-sites-are-not-loading-in-iframe" class="question-hyperlink">Certain sites are not loading in iFrame</a> </div> </div> </div> <div class="module sidebar-linked"> <h4 id="h-linked">Related</h4> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">1</div></a> <a href="../../questions/48985753/prevent-access-to-website-depending-on-wheter-or-not-it-is-viewed-trough-an-if" class="question-hyperlink">Prevent access to website depending on wheter or not it is viewed trough an iframe</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes default">3</div></a> <a href="../../questions/12888332/checking-third-party-iframe-content" class="question-hyperlink">Checking Third-Party iFrame Content</a> </div> </div> <div class="linked"> <div class="spacer"> <a title="Vote score (upvotes - downvotes)"><div class="answer-votes answered-accepted default">1</div></a> <a href="../../questions/21506977/how-to-prevent-an-iframe-from-uniframing-itself" class="question-hyperlink">How to prevent an iframe from uniframing itself</a> </div> </div> </div> </div> </div> </div> <script src="../../static/js/stack-icons.js"></script> <script src="../../static/js/fromnow.js"></script> </body> </html>