• 域名认证
  • 作品:144
  • 案例:19|
  • 教程:7340|
  • 资讯:500|
  • 资源:364|
  • 总访问量:1097006|

导航菜单
酷讯网络工作室_源码交易平台,源码商城,网站定制开发,免费模版下载,网络技术服务,微信应用开发,小程序开发,贵州网络技术欢迎你.
iframe阻止跨域嵌套的方式

iframe阻止跨域嵌套的方式

作者/ admin2016

iframe阻止跨域嵌套的方式

作者/ admin2016

腾讯QQ空间防嵌套方式

<script type="text/javascript">document.domain="qq.com";var _s_=new Date(),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/'));var QZFL={};QZFL.event={};QZFL.event.getEvent=function(evt){var evt=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;}else if(cnt>9){break;}c=c.caller;  cnt;}}return evt;};QZFL.event.getTarget=function(evt){var e=QZFL.event.getEvent(evt);if(e){return e.srcElement||e.target;}else{return null;}};var QZFF_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] = new Date();</script>

淘宝防嵌套方式

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

四种防iframe方式

第一种要说的就是淘宝使用的设施

解决方案一:JS方式

<script type="text/javascript">
if(self != top) { top.location = self.location; }
</script>
if (self == top) {
var theBody = document.getElementsByTagName('body')[0];
theBody.style.display = "block";
} else {
top.location = self.location;
}

把上面的JS代码片断放到你页面的 head 中即可。

要稀奇说明下这种方式不是很靠谱,可以很轻松使这种方式失效。

只需要添加下面代码使JS代码失效,这种方式就没用了。

<script type="text/javascript" charset="utf-8">document.write('<iframe seamless sandbox security="restricted" id="url_mainframe" frameborder="0" scrolling="yes" name="main" src="http://www.baidu.com" style="height:100%; visibility: inherit; width: 100%; z-index: 1;overflow: visible;"></iframe>');//把内里的http://www.baidu.com换成要嵌套的网址

解决方案二:Meta标签方式

在需要禁用iframe嵌套的网页head中添加下面代码

<meta http-equiv="X-FRAME-OPTIONS" content="DENY">

以上两种为前端处置方式,就我小我私人来说不推荐使用,不外这个也是因人而异的,没有绝对的好与差。

解决方案三:PHP方式

<?php header('X-Frame-Options:Deny'); ?>

在需要禁用iframe嵌套的PHP网页中添加上面代码

上面这种是后端程序处置方式。

解决方案四:Apache主机方式

设置 Apache 在所有页面上发送 X-Frame-Options 响应头,需要把下面这行添加到 'site' 的设置中:

Header always append X-Frame-Options SAMEORIGIN

解决方案五:Nginx主机方式

设置 nginx 发送 X-Frame-Options 响应头

把下面这行添加到 'http', 'server' 或者 'location' 的设置中:

add_header X-Frame-Options "SAMEORIGIN";

设置 IIS 发送 X-Frame-Options 响应头

添加下面的设置到 Web.config 文件中:

<system.webServer>
...
<httpProtocol>
<customHeaders>
<add name="X-Frame-Options" value="SAMEORIGIN" />
</customHeaders>
</httpProtocol>
...
</system.webServer>

解决方案六:.htaccess方式

在网站根目录下的.htaccess文件中中加一句

Header append X-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 中展示。

关于酷讯站长

兴趣是最好的老师,既然选择了这个行业,不管有多乏味枯燥,我都要一如既往的做好我的工作 ...[更多]

E-mail:240870160@qq.com
QQ:240870160
微信号:
bndy110
用手机阅读《iframe阻止跨域嵌套的方式》

扫描用手机阅读此文
支持Android/iPhone

退出阅读 | 首页