gpt4 book ai didi

javascript - 防止 IFRAME 嵌入,但有一个异常(exception)

转载 作者:行者123 更新时间:2023-11-30 10:52:26 26 4
gpt4 key购买 nike

假设我们在给定位置有一个网页(如 www.foo.com/page1.html)并且该页面包含此(全局)代码:

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

因此,如果我们尝试将该页面加载到 IFRAME 中,该页面将“跳”出 iframe 进入浏览器窗口,这将(结果)破坏包含 iframe 的页面。

没关系,但我想对该规则实现一个异常(exception)。具体来说,另一个页面位于不同的域(如 www.bar.com/page2.html),我希望这个页面能够嵌入第一页通过 IFRAME。

我将如何修改第一页的代码,以便它可以嵌入到其他页面中?

这样可以吗?

if (self != top && top.location.href !== "http://www.bar.com/page2.html") {
top.location.replace(location.href);
}

最佳答案

我怀疑您是否能够检查外部父页面的 URL,因为 Same Origin Policy应该阻止访问其任何属性。

也许有一些我知道的诡计无论如何都允许它。除此之外,我想到的最好的想法是检查 document.referrer。据我所知,在 iframe 中请求的文档将始终在跨浏览器的引荐来源网址中包含嵌入页面的 URL。

如果 referrer 是 http://www.bar.com/page2.html,则该页面要么位于该页面的 iframe 中,要么是从那里链接到的(这是这种方法唯一的大缺点是:您无法 100% 确定它是传入链接还是 iframe 嵌入)。

显然,文档的引荐来源网址可被客户端欺骗,但我认为这不是这里的问题。

关于javascript - 防止 IFRAME 嵌入,但有一个异常(exception),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4527464/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com