ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

防止网页被嵌入框架

2020-09-17 17:03:28  阅读:237  来源: 互联网

标签:嵌入 网页 框架 top hostname window href 报错 location


有这样一种情况,你的网页a被网站b恶意嵌入iframe,用户看到的是你的网页内容,但是不知道网站来自于b,这就可能做一些坏事,比如误导用户跳转其他。。网址

通过一段js代码解决这个问题:

<script type="text/javascript">

if (window!=top) // 判断当前的window对象是否是top对象

top.location.href =window.location.href; // 如果不是,将top对象的网址自动导向被嵌入网页的网址

</script>

 

但实际有一个问题:使用后,任何人都无法再把你的网页嵌入框架了,包括你自己在内

于是对代码进行一个升级:

if (top.location.hostname != window.location.hostname) {

  top.location.href = window.location.href;

}

 此代码报错,网站跨域了,对跨域站点操作就会报错

于是,换一种思路,网站报错了,那就是跨域了呗,也就是呗=被其他网站框架嵌套了

try{
  top.location.hostname;
}

catch(e){
  top.location.href = window.location.href;
}

 

又出现问题,在chrome里面,跨域竟然没有报错

于是增加对chrome的代码补充

try{

  top.location.hostname;

    
  if (top.location.hostname != window.location.hostname) {

    top.location.href =window.location.href;

  }

}

catch(e){

  top.location.href = window.location.href;

}

  

 

标签:嵌入,网页,框架,top,hostname,window,href,报错,location
来源: https://www.cnblogs.com/liuxiaoru/p/13686124.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有