![](/img/trans.png)
[英]Block iframe from setting parent.location (prevent framebusting)
[英]prevent iframe from changing parent location
假设http://a.com/foo包含<iframe src="http://b.com/bar">
有时b.com/bar会突破其框架:顶级窗口将从aff重定向到b.com/bar。 我不知道b.com是如何做到这一点的。
我认为跨域iframe不可能干扰父级,除非父级通过postMessage进行合作。 是否正在更改窗口位置?
如果发生了这种情况,a.com如何阻止这种重定向? 我控制a.com但无法修改b.com。
如果这不是正在发生的事情,我怎样才能找出b.com正在做什么来实现重定向?
强制b.com将自身加载到新窗口,或破坏其对top
或parent
对象的访问是可以接受的。 b.com行为的其他降级可能是可以接受的。
父可以在iframe
上使用sandbox
属性:
http://www.w3schools.com/TAgs/att_iframe_sandbox.asp
然后iframe
将无法再重定向父级。
可能发生的事情是b.com中的链接具有属性Target ='_ parent'。 这将使window / iframe父更新。
如果您控制b.com - 确保您的所有目标都是_self。
这被称为“框架破坏”。 据说有技术可以阻止这种情况( http://seclab.stanford.edu/websec/framebusting/index.php )。
也许你可以使用ajax或者类似的方式将框架的内容加载到你的页面中而不是iframe?
如果我创建一个将使用cURL来获取b.com的a.com/proxy.php
,那么ajax解决方案可以工作。
优点:
缺点:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.