【问题标题】:Can't seem to bust out of a full page iframe - what are the possible intentions?似乎无法摆脱整页 iframe - 可能的意图是什么?
【发布时间】:2013-12-18 23:24:22
【问题描述】:

今天查看我的 Adsense 报告时,我注意到其中有一个不属于我们的域。

自 1997 年以来,我一直在运行“example.com”。今天,我在我们的报告中发现了一个网站,当我访问该网站时,该网站在整页 iframe 中都有我们的网站。我担心它会开始参与点击劫持,损害我们在 Google 中的声誉,或损害我们在新闻界树立的名声。

劫持我们的网站名为“exampleblog.com”,它似乎已于今天早些时候注册,即 2013 年 12 月 2 日。

我尝试了以下代码尝试跳出框架,但它似乎没有任何效果。我不确定代码有多旧。还有更现代的技术吗?

这是我尝试过的:

if (document.referrer.match(/^https?:\/\/([^\/]+\.)?exampleblog\.com(\/|$)/i)) {
top.location.replace(self.location.href);
}

【问题讨论】:

标签: javascript iframe framebusting


【解决方案1】:

只需检查顶部窗口的位置是否正确,即可跳出任何 iframe:

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

【讨论】:

  • 谢谢。这确实有效,但我希望允许极少数网站(例如 stumbleupon)构建框架。我怎么说“除了这个网站列表之外的所有东西”?谢谢。
【解决方案2】:

感谢另一个网站上的 JD_Toims 提供此代码:

var allowedList = /^(www\.)?(example\.com|site\.com|another-site\.com)$/;
var currentHost = location.hostname;
var allowedHost = currentHost.search(allowedList);

if(top!=self && allowedHost==-1) { top.location.replace(location); } 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-16
    • 1970-01-01
    • 2018-01-14
    • 1970-01-01
    • 2018-12-14
    • 2012-08-28
    • 1970-01-01
    • 2020-01-31
    相关资源
    最近更新 更多