【发布时间】:2011-05-27 05:23:36
【问题描述】:
所以我们在 iframe 中加载页面。此子页面是从与父页面位于同一域的缓存中加载的。但是,外部资产不会在本地缓存,而是从外部站点加载 - 包括 javascript。在一个站点中,我们有框架破坏代码:
if (top.location != self.location) {
top.location = self.location
}
现在我知道我们可以使用来自coderr 的解决方案,但我不确定会产生什么影响/连锁问题。鉴于我们可以访问缓存的子页面,我想知道是否可以向子页面添加任何内容以覆盖任何方法或值,以便将帧破坏呈现为 null。例如,在孩子的<head> 中,我尝试添加以下内容:
<script type="text/javascript">
top.location = self.location
</script>
和
self.location = top.location
产生了非常可怕的结果(第一个示例中的无限嵌套,第二个示例中的浏览器完全崩溃)。
对于我们可以添加到孩子中以消除框架破坏的代码有什么建议吗?
否则,我们将不得不缓存 js 并解析/替换 framebusting 脚本。
谢谢
R.
请 - 这是合法的!
【问题讨论】:
-
@Epascarello - 我认为其中大部分都是从第三方网站加载页面,而不是从可以访问子页面源的同一个域。
标签: javascript iframe framebusting