当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何防止IFRAME重定向顶级窗口》经验,为你挑选了4个好方法。

有些网站的代码是"打破" IFRAME外壳,这意味着如果页面A作为IFRAME父页面内部加载,P一些Javascript A会将外部窗口重定向到A.

通常这个Javascript看起来像这样:


我的问题是:作为父页面P的作者而不是内页的作者,AA该如何防止这种突破呢?

PS在我看来,它应该是一个跨站点安全违规,但事实并非如此.



1> Pankrat..:

使用HTML5,添加了iframe沙箱属性.在撰写本文时,这适用于Chrome,Safari,Firefox以及IE和Opera的最新版本,但可以满足您的需求:


如果要允许顶级重定向指定sandbox="allow-top-navigation".


不幸的是,`sandbox`不允许在沙盒框架中使用Flash或任何其他类型的对象,这使得`sandbox`功能在许多情况下无用.
这是解药:http://blogs.msdn.com/b/ieinternals/archive/2010/03/30/combating-clickjacking-with-x-frame-options.aspx

2> 小智..:

我用sandbox ="......"

允许表单允许表单提交

allow-popups允许弹出窗口

allow-pointer-lock允许指针锁定

allow-same-origin允许文档保持其原点

allow-scripts允许JavaScript执行,并允许功能自动触发

allow-top-navigation允许文档通过导航顶层窗口而突破框架

顶部导航是您想要阻止的,因此请将其保留,并且不允许这样做.遗漏的任何东西都会被封锁

恩.