【学习】禁止别人以iframe加载你的页面(客户端的处理方式)

学习资料:

https://www.cnblogs.com/Wayou/p/things_you_dont_know_about_frontend.html#comment_form_container

https://blog.csdn.net/dugujiancheng/article/details/51669164

https://www.cnblogs.com/lvhw/p/7107436.html

 

方法一:

  

if(window.location != window.parent.location) {
  window.parent.location = window.location;
}

 

方法二:

为了防止网站被钓鱼,可以使用window.top来防止你的网页被iframe

if(window != window.top) {
  window.top.location.href = correctURL;
}

 

方法三:

限定你的网页不能嵌套在任意网页内。如果你想引用同于的框架的话,可以判断域名。

if(top.location.host != window.location.host) {
  top.location.href = window.location.href;
}

 当然,如果你网页不同域名的话,上述就会报错。

所以,这里可以使用try...catch...进行错误不活。如果发生错误,则表明不同域,表示你的页面被盗用了。可能有些浏览器这样写不会报错,所以需要降级处理。

这时候再进行跳转即可。

try{
  top.location.hostname;//检测是否出错
  //如果没有出错,则降级处理
  if(top.location.hostname != qwindow.location.hostname) {
    top.location.href= window.location.href;
  }
}    
catch(e){
  top.location.ref = window.loction.href;
}

 

 

 

 

扩展学习:window.parent与window.top区别  https://developer.mozilla.org/zh-CN/docs/Web/API/Window/top

window.parent返回当前窗口的直接父对象,window.top返回最顶层的窗口对象。当在处理父窗口的子框架(subframe),而你想获取顶层框架时,window.top属性相当有用。

你可能感兴趣的:(【学习】禁止别人以iframe加载你的页面(客户端的处理方式))