javascript - 如何防止 IFRAME 重定向顶级窗口

标签 javascript html iframe

某些网站具有“突破”IFRAME 封装的代码,这意味着如果页面 A 作为 IFRAME 加载到父页面PA中的一些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/

相关文章:

javascript - 在javascript中的最后2个字符之前插入

javascript - 表单验证失败后 jQuery 不起作用

html - iOS - 更改 HTML 中 iFrame 标记的宽度

javascript - 无法使用 JavaScript 访问自定义 HTML 标记内的 DOM 元素

javascript - 如何更改 html(jade 模板)以在生产中使用 *.min js 和 css?

javascript - 获取数组最后一个元素时出错

html - HTML 中具有特定高度的新行

html - 使用 foreach 语句可能会弄乱我的 CSS

html - 标签的 css 但不是包含图像的标签

jquery - 如何使用greasemonkey将页面元素添加到另一个页面