禁止显示页面中的iframe

时间:2014-05-02 21:19:36

标签: javascript html iframe

如何禁止用户在iframe中使用我的网页。是否可以只使用HTML或者我必须使用JavaScript / jQuery。

2 个答案:

答案 0 :(得分:2)

有几种不同的方法可以解决这个问题,Busting Frame Busting paper详细解释了这一点,如果你有机会,我强烈建议你阅读。

前两个选项是使用HTTP标头,它不使用任何HTML,JavaScript / jQuery,但需要在您的网络服务器上进行配置。

  1. 使用X-FRAME-OPTIONS标题。

    • X-FRAME-OPTIONS: deny - 框架内无渲染
    • X-FRAME-OPTIONS: sameorigin - 如果原因不匹配则无法呈现
  2. Content-Security-Policy标题允许您使用frame-ancestors指令 指定允许将页面嵌入到框架或iframe中的源。对此的不利之处在于它没有提供强制执行广泛政策的方法。

  3. 编辑frame-ancestors实际上是Content Security Policy Level 2的一部分compatibility can be seen here

    建议的方法是在页面顶部使用以下代码段。如果内容是iframed,它将隐藏您的页面内容,否则将显示内容。

    <style> html {display:none;} </style>
    <script>
       if (self == top) {
           document.documentElement.style.display = 'block'; 
       } 
       else {
           top.location = self.location; 
       }
    </script>
    

答案 1 :(得分:0)

使用iframe脚本的中断:

<script type="text/javascript">
        if (top.location != self.location) {
            top.location = self.location.href;
        }
</script>