Javascript 防止iframe更改父位置
假设包含Javascript 防止iframe更改父位置,javascript,html,iframe,Javascript,Html,Iframe,假设包含 有时b.com/bar会脱离其框架:顶级窗口将从a.com/foo重定向到b.com/bar。我不知道b.com是怎么做到的 我认为跨域iframe不可能干扰父级,除非父级通过postMessage进行合作。更改窗口位置是否免于此限制 如果是这样的话,a.com如何防止这种重定向?我控制a.com,但无法修改b.com 如果不是这样的话,我怎样才能知道b.com是如何实现重定向的呢 强制b.com将其自身加载到新窗口中,或破坏其对top或父对象的访问是可以接受的。b.com行为的其他降
有时b.com/bar会脱离其框架:顶级窗口将从a.com/foo重定向到b.com/bar。我不知道b.com是怎么做到的
我认为跨域iframe不可能干扰父级,除非父级通过postMessage进行合作。更改窗口位置是否免于此限制
如果是这样的话,a.com如何防止这种重定向?我控制a.com,但无法修改b.com
如果不是这样的话,我怎样才能知道b.com是如何实现重定向的呢
强制b.com将其自身加载到新窗口中,或破坏其对
top
或父对象的访问是可以接受的。b.com行为的其他降级可能是可以接受的。可能发生的情况是b.com内部的链接具有属性Target=''u parent'。
这将使窗口/iframe父对象更新
如果你控制了b.com-确保你所有的目标都是自我的。这就是所谓的“框架破坏”。应该有一些技术可以阻止这种情况()
也许你可以使用ajax或类似的工具来代替iframe,将框架的内容加载到你的页面中?如果我创建a.com/proxy.php
,它将使用cURL获取b.com,那么ajax解决方案就可以工作了
优点:
- 可以更改或删除任何脚本
- 可以调整b.com内容(预览模式)
- 可以绕过跨域iframe限制
缺点:
- b.com上的Cookie/会话将不可用
- b、 com可能需要脚本来创建其内容
- 带宽负担
- 为使HREF工作而进行的编码工作
家长可以在
iframe
上使用sandbox
属性:
然后,iframe
将不再能够重定向父对象。很有趣,尽管基本的反框架破坏204技巧在我的FF11中不起作用(所有导航都被阻止)。页面最终将获胜;即使它不能破解你的框架破坏者,它也可以决定隐藏自己或重定向到令人反感的东西。