最近比较忙,今天尤颢哲又抽时间给大家带来了iframe禁止跨域嵌套的方法干货,还有关于iframe跨域嵌套,方法,解决方案等等其他相关干货,认认真真阅读完,若能把我想表达的全部理解,相信你已经离大牛不远了哈!
腾讯QQ空间防嵌套方法
document.domain="qq.com";var_s_=newDate(),g_T={},siDomain="ctc.qzonestyle.gtimg.cn",g_iUin=499469859,g_iLoginUin=499469859;g_T.fwp=[_s_];document.namespaces&&document.namespaces.add&&(document.namespaces.add('qz','http://qzone.qq.com/'),document.namespaces.add('x','http://qzone.qq.com/'));varQZFL={};QZFL.event={};QZFL.event.getEvent=function(evt){varevt=window.event||evt,c,cnt;if(!evt&&window.Event){c=arguments.callee;cnt=0;while(c){if((evt=c.arguments[0])&&typeof(evt.srcElement)!="undefined"){break;}elseif(cnt>9){break;}c=c.caller;++cnt;}}returnevt;};QZFL.event.getTarget=function(evt){vare=QZFL.event.getEvent(evt);if(e){returne.srcElement||e.target;}else{returnnull;}};varQZFF_M_img_ribr=[];QZFL.media={reduceImgByRule:function(ew,eh,opts,cb){QZFF_M_img_ribr.push(QZFL.event.getTarget());},adjustImageSize:function(w,h,trueSrc,cb,errCallback){QZFF_M_img_ribr.push(QZFL.event.getTarget());},reduceImage:function(){QZFF_M_img_ribr.push(QZFL.event.getTarget());},getImageInfo:function(){QZFF_M_img_ribr.push(QZFL.event.getTarget());}};g_T.fwp[1]=newDate();
淘宝防嵌套方法
if(window.top!==window.self){window.top.location=window.location;}
四种防iframe方法
第一种要说的就是淘宝使用的办法
解决方案一:JS方法
if(self!=top){top.location=self.location;} if(self==top){ vartheBody=document.getElementsByTagName('body')[0]; theBody.style.display="block"; }else{ top.location=self.location; }
把上面的JS代码片段放到你页面的 head 中即可。
要特别说明下这种方法不是很靠谱,可以很轻松使这种方法失效。
只需要添加下面代码使JS代码失效,这种方法就没用了。
document.write('');//把里面的http://www.baidu.com换成要嵌套的网址
解决方案二:Meta标签方法
在需要禁用iframe嵌套的网页head中添加下面代码
以上两种为前端处理方法,就我个人来说不推荐使用,不过这个也是因人而异的,没有绝对的好与差。
解决方案三:PHP方法
在需要禁用iframe嵌套的PHP网页中添加上面代码
上面这种是后端程序处理方法。
解决方案四:Apache主机方法
配置 Apache 在所有页面上发送 X-Frame-Options 响应头,需要把下面这行添加到 ‘site’ 的配置中:
HeaderalwaysappendX-Frame-OptionsSAMEORIGIN
解决方案五:Nginx主机方法
配置 nginx 发送 X-Frame-Options 响应头
把下面这行添加到 ‘http’, ‘server’ 或者 ‘location’ 的配置中:
add_headerX-Frame-Options"SAMEORIGIN";
配置 IIS 发送 X-Frame-Options 响应头
添加下面的配置到 Web.config 文件中:
... ...
解决方案六:.htaccess方法
在网站根目录下的.htaccess文件中中加一句
HeaderappendX-FRAME-OPTIONS"SAMEORIGIN"
以上几种解决方案为服务器端解决方案。
关于X-Frame-Options
以上大部分关于禁止iframe框架被跨域嵌套的方法中使用到X-Frame-Options,在此特别介绍一下:
X-Frame-Options 有三个值:DENY、SAMEORIGIN、ALLOW-FROM uri
DENY
表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。
SAMEORIGIN
表示该页面可以在相同域名页面的 frame 中展示。
ALLOW-FROM uri
表示该页面可以在指定来源的 frame 中展示。
这篇文章的所有内容到这里就完了,希望更多的新手朋友可以得到帮助,认真看完了这篇iframe禁止跨域嵌套的方法【详细介绍】文章,感觉收获很多,可以帮忙分享一下。
本文发布者:站长老油条,不代表寂寞网立场,转载请注明出处:https://www.jimowang.com/p/5696.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 jimowangmail@126.com 举报,一经查实,本站将立刻删除。