【问题标题】:Stop Anyone From Viewing My Site Using an IFrame阻止任何人使用 IFrame 查看我的网站
【发布时间】:2010-11-05 07:05:20
【问题描述】:

我已经查看并尝试过,但不知道在哪里可以阻止某些人通过 IFrame 或Thickbox 浏览我的网站?

我想阻止被禁止的成员通过代理站点访问该站点,这些代理站点使最终用户能够通过 IFrame 进行浏览。我知道没有什么可以完全证明,但它仍然值得提问。

【问题讨论】:

    标签: php javascript iframe


    【解决方案1】:

    啊,但是这里是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);
    }
    

    【讨论】:

    • 这些方法不是,但还有另一种方法,如第二个链接所示。
    • 如果我在首页定义一个新的(空白)alert() 方法会发生什么......孩子会调用哪个版本?有趣的过期,但是如果孩子调用了错误的方法......空白的alert()会阻止显示警报,从而破坏反反框架突破。
    • ...什么也没发生。正如我所料。多哈。听起来像是代码高尔夫的好人选!
    • 是的,这超出了我的时间限制,看起来游戏已经进行了一段时间。
    【解决方案2】:

    查看 SO 自己的 Jeff Atwood 关于这个问题的 cmets...

    Coding Horror - We Done Been ... Framed!

    归结为没有可靠的方法可以做到这一点。您可以尝试框架突破,但恶意编码人员总是能够添加更多代码并绕过您可能添加的任何“保护”。

    【讨论】:

    • 打败我。我正在删除我的答案,因为它几乎与您的完全相同。
    • 对他的 Jeff Atwoods 博客文章的回复确实有效(事实上,Jeff Atwood 在他的博客文章中提到了他的工作),我已经更新了我的回答作为回应。我发布的帖子较新,只有 5 天。
    • 断开的链接...无用的答案:(
    • @Salketer - 修复了链接。
    【解决方案3】:

    altCognito 是对的,你想破坏框架突破。

    下面是the postaltCognito发给你的源代码。

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

    但是,我认为您甚至可能想更进一步。您可能希望进行一系列检查,不仅要查找 top,还要查找 parentwindow

    <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> 
    

    【讨论】:

      【解决方案4】:
      <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>
      

      【讨论】:

        【解决方案5】:

        你可以在你的头文件中试试这个简单的js

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

        【讨论】:

          猜你喜欢
          • 2015-03-12
          • 2017-11-03
          • 2018-08-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-04-22
          • 2023-03-12
          • 2014-01-06
          相关资源
          最近更新 更多