如何防止我的网站页面通过iFrame的第三方网站框架加载

2022-08-30 08:07:38

在页面加载期间,如何发现我的页面已作为框架嵌入到其他网站?我想推荐人请求标头在这里无法帮助我?谢谢。


答案 1

您无法从服务器端检查它,但可以使用javascript在页面加载后检测它。比较 和 ,如果它们不相同,则表示您处于帧中。topself

此外,一些现代浏览器会尊重标头,该标头可以有两个值:X-FRAME-OPTIONS

  • DENY – 如果页面包含在框架中,则阻止页面呈现
  • SAMEORIGIN – 与上述相同,除非页面与顶级框架集持有者属于同一域。

用户包括Google的Picasa,它不能嵌入到框架中。

支持标头的浏览器,最低版本:

  • IE8 和 IE9
  • 歌剧 10.50
  • 野生动物园 4
  • 铬 4.1.249.1042
  • Firefox 3.6.9 (带有 NoScript 的旧版本))

答案 2

Stackoverflow包括一些JS来测试它()。这是它的相关部分:master.js

if(top!=self){
    top.location.replace(document.location);
    alert("For security reasons, framing is not allowed; click OK to remove the frames.")
}

但请记住,JS可以被禁用。


推荐