今天介绍四种防iframe的方法。

方法一:JavaScript

JavaScript

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

1

2

3

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

JavaScript

if (self == top) {

var theBody = document.getElementsByTagName('body')[0];

theBody.style.display = "block";

} else {

top.location = self.location;

}

1

2

3

4

5

6if(self==top){

vartheBody=document.getElementsByTagName('body')[0];

theBody.style.display="block";

}else{

top.location=self.location;

}

上面两段代码都是可以的,原理就是先判断网站是否被嵌套。如果被嵌套,则将浏览器重定向到被嵌套的网站。

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

要特别说明下这种方法不是很靠谱,可以很轻松使这种方法失效。只需要添加下面代码使JavaScript代码失效,这种方法就没用了。

JavaScript

document.write('');

//把里面的https://ihongchao.com换成要嵌套的网址

1

2

3

document.write('');

//把里面的https://ihongchao.com换成要嵌套的网址

在介绍第二种方法之前,先介绍一下网站的“X-FRAME-OPTIONS”属性,看名字就能知道,该属性是嵌套选项。分别有三种选择:

DENY:表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。

SAMEORIGIN:表示该页面可以在相同域名页面的 frame 中展示。

ALLOW-FROM uri:表示该页面可以在指定来源的 frame 中展示。

1

2

3DENY:表示该页面不允许在frame中展示,即便是在相同域名的页面中嵌套也不允许。

SAMEORIGIN:表示该页面可以在相同域名页面的frame中展示。

ALLOW-FROMuri:表示该页面可以在指定来源的frame中展示。

方法二:meta标签

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

XHTML

1

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

方法三:编程语言

以PHP为例,在PHP代码中添加如下代码,即可防止网站被iframe嵌套。

PHP

1<?phpheader (‘X-Frame-Options:Deny');?>

方法四:服务器配置

下面分别说明Apache、NGINX和IIS中如何配置,来防止网站被嵌套。原理与方法三相同,即发送消息头告知浏览器本网站不想被嵌套。

首先是Apache。在Apache的配置文件的“site”中添加如下配置,即可。

Header always append X-Frame-Options SAMEORIGIN

1HeaderalwaysappendX-Frame-OptionsSAMEORIGIN

虚拟机由于无法修改配置文件,可以将如下代码加入网站根目录的“.htaccess”文件中,效果相同。

Header append X-FRAME-OPTIONS "SAMEORIGIN"

1HeaderappendX-FRAME-OPTIONS"SAMEORIGIN"

目前势头正旺的NGINX可以在配置文件的http、server或者location中加入如下代码,来防止被嵌套。

add_header X-Frame-Options "SAMEORIGIN";

1add_headerX-Frame-Options"SAMEORIGIN";

在IIS中,可以将网站根目录的web.config配置文件做如下修改,来禁止网站被嵌套。

XHTML

...

...

1

2

3

4

5

6

7

8

9

...

...

如此这般之后,你的网站就不会被第三方网站嵌套了。

php嵌套 frame,终极解决禁止网站被别人通过iframe引用嵌套套入。相关推荐

  1. 禁止网站被别人通过 iframe 引用

    禁止网站被别人通过 iframe 引用 前端处理 方案一:js方法 不可靠,不推荐使用 <script type="text/javascript">if(self ! ...

  2. 解决哔哩哔哩视频iframe引用失败问题

    分享 获取iframe 第二个URL前出现了"https:" 第一个显示异常 第二个可以正常播放. <p class="couzishu">couz ...

  3. 禁止网站被iframe嵌套的解决方法

    有时候我们开发的网站可能会被别人利用嵌入到其他网站中,也就是别人镜像我们的网站,造成点击劫持风险. 目前收集到的有以下前后端2种维度来防止网页被iframe嵌套的办法: 一.前端 针对传统的Click ...

  4. 回调地狱以及解决回调地狱 - promise嵌套变链接 - 解决终极办法 - async 和 await

    回调函数? 当一个函数被当做参数传递时,这个函数就叫做回调函数-  callback 通常使用回调函数来处理异步代码 当异步代码执行结束后,需要执行的代码就要放在回调函数中 回调地狱? 当回调函数嵌套 ...

  5. ScriptX,smsx打印控件安装的终极解决办法

    原文地址:ScriptX,smsx打印控件安装的终极解决办法 作者:莫科     对于在客户端或者服务器端运行Microsoft公司的IE浏览器的用户,使用ScriptX控件可以进行各种HTML文件的 ...

  6. IE8经常无故卡死终极解决办法分享

    [推荐]IE8经常无故卡死终极解决办法分享 作者:IE8无故卡死 日期:2011年06月27日 来源:西安网站制作 浏览:1470 次   好长一段时间IE8经常无故卡死,在网上找了很多解决办法,但是 ...

  7. 织梦DedeCMS后台模块管理列表不显示 【终极解决办法】

    织梦系统上传到空间之后,点击"模块管理"里面的"模块列表"显示空白的解决办法 网上很多关于织梦后台模块管理列表不显示的解决办法,但是大多无效,下面这种方法是小菜 ...

  8. 火狐浏览器如何禁止网站发消息 火狐浏览器禁止网站发消息的方法

    火狐浏览器是一款非常安全的浏览器,有很多的小伙伴都在使用它,很多朋友在使用火狐浏览器时都遇到过网站请求发送消息通知权限的情况,那么应该如何解决这个问题呢?下面就和小编一起来看看有什么好的方法吧. 火狐 ...

  9. 1067 mysql,mysql免安装版1067错误终极解决办法图文教程

    [从笔记本到pc] 笔记本一直都使用MySQL免安装版5.6.17,使用如下方法安装: 今天把同一个zip包传到pc上,按上面的方法安装居然报1067,按上面方法多次尝试还是不行. 百度,google ...

最新文章

  1. linux进程操作命令,linux常用进程命令
  2. CoolPad backdoor CoolReaper
  3. 第十五周程序阅读-范型程序设计(2)
  4. Git存管代码,实例演示
  5. python几岁开始学_python编程少儿几岁可以学?有哪些优势?
  6. 【三万字!】Dubbo、Zookeeper学习笔记!秒杀面试官!——双非上岸阿里巴巴系列
  7. javascript --- 手写Promise、快排、冒泡、单例模式+观察者模式
  8. 如何验证登录oracle,Oracle登录验证方式详解
  9. Python文件操作与函数目录
  10. 关于VMware无法输入许可证密钥的方法
  11. cmd NTSD命令用法详解
  12. C语言程序书写中 每行必须有分号,C语言课后习题答案
  13. 全网最新Linux全套教程
  14. matlab 空间解析几何,Matlab 数学软件包在向量代数—空间解析几何中的应用
  15. 基于MDKA5D31-EK_T70开发板的QT示例-demo09:LM75A温度曲线
  16. android 系统 迷你pc,Remix mini:一款真正运行安卓系统的电脑
  17. 读书笔记(九)--三分做事,七分做人
  18. c语言编程怎么样,C语言怎么样,好学吗?
  19. 如何选择一台好的拨号服务器?
  20. Android漂浮碰壁动画

热门文章

  1. 重试次数配置_TestNG实践——2.用例失败重试
  2. Codeforces 798D Mike and distribution (构造)
  3. Luogu P4709 信息传递 (群论、生成函数、多项式指数函数)
  4. UOJ #214 [UNR #1]合唱队形 (概率期望计数、DP、Min-Max容斥)
  5. python语言程序设计编程题_《python语言程序设计》_第一章编程题
  6. python读取文件类型_python准确判断文件类型
  7. html弹出div提示自动关闭,html弹出div弹窗
  8. React-navigation之StackNavigator
  9. Web 第二阶段Java Script (续)
  10. What's New In DevTools (Chrome 59)来看看最新Chrome 59的开发者工具又有哪些新功能