【问题标题】:Trying to open a URL in iframe尝试在 iframe 中打开 URL
【发布时间】:2011-11-22 10:28:28
【问题描述】:

我在一个 HTML 页面中有两个 iframe,两者共享 50% 的屏幕。

在第一个 iframe 中打开 http://www.google.com,在第二个 iframe 中打开 http://www.nytimes.com

页面加载时,页面会自动重定向到http://www.nytimes.com

这可能是什么问题?

【问题讨论】:

    标签: javascript html iframe


    【解决方案1】:

    很可能,nytimes.com 主页上有framebuster script

    【讨论】:

    • 我仍然需要在 iframe 中打开 nytimes.com。可以为此做些什么吗?
    • 那么唯一可靠的方法就是代理内容并剥离 framebuster 代码。 (您还需要重写 href 以通过代理返回)
    【解决方案2】:

    他们的主页包括this JS file,其中包含以下代码:

    (function() {
        if (window.self != window.top && !document.referrer.match(/^https?:\/\/[^?\/]+\.nytimes\.com\//)) {
            var expTime = new Date();
            expTime.setTime(expTime.getTime() + 60000);
            document.cookie = "FramesetReferrer=" + document.referrer + "; expires=" + expTime.toGMTString() + "; path=/";
            top.location.replace(window.location.pathname);
        }
    })();
    

    这会导致您看到的行为。

    为了防止这种情况,请在此处查看以下问题:Keeping pages inside an iframe

    【讨论】:

      【解决方案3】:

      仅仅是因为 nytimes.com 不喜欢框架并且想要使用你所有的浏览器空间。

      你为什么要做这样的网站?

      【讨论】:

      • 我仍然需要在 iframe 中打开 nytimes.com。可以为此做些什么吗?
      • 如果他们使用的是 framebuster,则不会。
      • 而不是 iframe,一个矫枉过正的解决方案可能是获取 html 代码,解析 iframe buster 并将其写入您的页面主体,一种网络代理
      • framebuster 可以从我们这边屏蔽吗?
      • 它不能被你阻止。
      【解决方案4】:

      我猜你的意思是 iframe 容器正在被重定向。也许您想检查某种 iframe 包含检测。看看:From the server is there a way to know that my page is being loaded in an Iframe

      【讨论】:

        【解决方案5】:

        看看OWASP - ClickJacking

        仅适用于 Chrome

        <iframe id="my_frame" sandbox> </iframe>
        

        对我很有用... :)

        【讨论】:

          猜你喜欢
          • 2013-04-25
          • 2014-02-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-28
          • 1970-01-01
          • 2012-11-25
          相关资源
          最近更新 更多