【问题标题】:Block iframe from setting parent.location (prevent framebusting)阻止 iframe 设置 parent.location(防止 framebusting)
【发布时间】:2010-09-19 17:47:25
【问题描述】:

我在自己的域中有一个网站,我将 iframe 包含到其他域中的其他网站中,以便快速预览。

问题是某些网站具有将用户从我的网站重定向的框架破坏代码。

我该如何阻止它。在 framebuster 的情况下,即使根本不显示 iframe 也比重定向要好。

这个重定向是否应该被同一个站点的原始保护阻止?


更新

好的,所以似乎无法阻止它,但是否有可能根本不显示框架。

我尝试使用双帧方法:A 和 B 在我的站点上,B 包含 C,当 B 获取 window.onbeforeunload 时,它会向 A 发送一条消息以删除 B。这也不起作用,因为框架似乎可以一直访问顶部窗口,而不仅仅是父窗口。

window.onbeforeunload 用于阻止重定向顺便说一句,但你必须显示一个对话框。

【问题讨论】:

  • 多年后:iframe“沙盒”属性防止了帧破坏,并通过使用“X-frame-options”滥用点击劫持,可能是为了响应恶意广告的帧破坏.

标签: javascript iframe


【解决方案1】:

这是无法做到的,因为如果 iframe 中的页面违反了同源策略,您将无法访问该页面的 DOM。

只是不要这样做。如果人们有框架破坏代码,他们显然不希望他们的页面在框架中。尊重这一点。

【讨论】:

    【解决方案2】:

    在弹出窗口中运行测试怎么样?给它 20 秒,如果您仍然可以控制弹出窗口(即框架没有更改 document.url),然后将其加载到新框架中(?)并显示给用户。否则,根本不显示框架。这不是万无一失的,但可以工作。

    【讨论】:

      【解决方案3】:

      我怎样才能阻止它。

      你不能。如果可以的话,它首先会破坏框架破坏代码的目的。

      这个重定向是否应该被同一个站点的原始保护阻止?

      这只会保护您免于访问/修改页面的 DOM(即document 对象)。 Frame-busting 代码仅使用window 对象来检测帧并重定向到另一个页面。

      【讨论】:

        【解决方案4】:

        这是一场猫捉老鼠的游戏,但帧破坏可以被击败。

        根据研究人员 (PDF) 来自 斯坦福大学和卡内基 梅隆大学,框架破坏不是 在预防方面同样有效 如希望的那样点击劫持。分析 Alexa 排名的 500 强网站 发现所有框架破坏 可以绕过实现。 一些规避措施是 特定于浏览器,而其他人工作 在所有浏览器中,研究人员 找到了。

        eweek上的原创文章;
        研究论文来自Stanford (PDF)

        【讨论】:

          【解决方案5】:

          如果您想要的只是网站的预览,那么有许多服务可以做到这一点。我没用过,但谷歌快速搜索找到了这个

          http://www.thumbshots.com/

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-10-13
            • 1970-01-01
            • 2015-01-20
            • 1970-01-01
            • 2013-02-21
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多