某些网站具有“突破”IFRAME
封装的代码,这意味着如果页面 A
作为 IFRAME
加载到父页面P
A
中的一些Javascript将外部窗口重定向到A
。
通常这个 Javascript 看起来像这样:
<script type="text/javascript">
if (top.location.href != self.location.href)
top.location.href = self.location.href;
</script>
我的问题是:作为父页面P
的作者,而不是内页A
的作者,我该如何阻止A
进行此突破?
附注在我看来,这应该是跨站点安全违规,但事实并非如此。
最佳答案
使用 HTML5 iframe sandbox添加了属性。在撰写本文时works on Chrome, Safari, Firefox and recent versions of IE and Opera但几乎可以满足您的要求:
<iframe src="url" sandbox="allow-forms allow-scripts"></iframe>
如果您想要允许顶级重定向,请指定sandbox="allow-top-navigation"
。
关于javascript - 如何防止 IFRAME 重定向顶级窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33387259/