PHP、Nginx、Apache中禁止网页被iframe引用的方法


Posted in PHP onOctober 01, 2020

可以使用php或nginx等添加X-Frame-Options header来控制frame权限
X-Frame-Options有三个可选的值:

DENY:浏览器拒绝当前页面加载任何Frame页面
SAMEORIGIN:frame页面的地址只能为同源域名下的页面
ALLOW-FROM:允许frame加载的页面地址

PHP代码:

header(‘X-Frame-Options:Deny');

Nginx配置:

add_header X-Frame-Options SAMEORIGIN

可以加在locaion中

location /
{
  add_header X-Frame-Options SAMEORIGIN
}

Apache配置:

Header always append X-Frame-Options SAMEORIGIN

使用后不充许frame的页面会显示一个白板。

IIS方法

在web.config文件中加

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

js方法

很多都是用这种方放,服务器端设置有时候有问题

if (self.frameElement && self.frameElement.tagName == "IFRAME") {
  top.location.href=self.location.href;
}
if (window.frames.length != parent.frames.length) {
  top.location.href=self.location.href;
}
if (self != top) { 
  top.location.href=self.location.href;
}

Meta标签方法

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

css禁止其他人的iframe,允许自己的

<style type="text/css">
iframe{v:expression (this.src='about:blank',this.outerHTML='');}
#mine{v:expression() !important}
</style>
<body> 内容:<iframe src="http://www.baidu.com"></iframe> 百度 <iframe src="http://www.126.com/"></iframe>  126邮箱<iframe src="http://www.163.com"></iframe> 网易<p>以上三个firame不允许</p> <p>firame google 是我要的.</p> <p><iframe id="mine" name="myfirame" src="http://www.google.com/" width=800 height=400></iframe></p>

参考:

https://developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options?redirectlocale=en-US&redirectslug=The_X-FRAME-OPTIONS_response_header

PHP 相关文章推荐
PHP初学者头疼问题总结
Oct 09 PHP
php一些公用函数的集合
Mar 27 PHP
PHP 循环删除无限分类子节点的实现代码
Jun 21 PHP
php实现统计邮件大小的方法
Aug 06 PHP
PHP生成压缩文件实例
Feb 07 PHP
laravel容器延迟加载以及auth扩展详解
Mar 02 PHP
php pthreads多线程的安装与使用
Jan 19 PHP
基于PHP实现通过照片获取ip地址
Apr 26 PHP
php文件上传及下载附带显示文件及目录功能
Apr 27 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
May 02 PHP
PHP基于openssl实现的非对称加密操作示例
Jan 11 PHP
Laravel5.5 视图 - 创建视图和数据传递示例
Oct 21 PHP
PHP遍历目录并返回统计目录大小
Jun 09 #PHP
php中替换字符串中的空格为逗号','的方法
Jun 09 #PHP
使用php批量删除数据库下所有前缀为prefix_的表
Jun 09 #PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
Jun 09 #PHP
PHP+ajaxfileupload+jcrop插件完美实现头像上传剪裁
Jun 09 #PHP
神盾加密解密教程(三)PHP 神盾解密工具
Jun 08 #PHP
神盾加密解密教程(二)PHP 神盾解密
Jun 08 #PHP
You might like
php 分页原理详解
2009/08/21 PHP
php使用mysqli向数据库添加数据的方法
2015/03/20 PHP
php实现的XML操作(读取)封装类完整实例
2017/02/23 PHP
PHP针对中英文混合字符串长度判断及截取方法示例
2017/03/31 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
2019/03/28 PHP
popdiv
2006/07/14 Javascript
用正则获取指定路径文件的名称
2007/02/27 Javascript
jquery 图片预加载 自动等比例缩放插件
2008/12/25 Javascript
自定义的一个简单时尚js下拉选择框
2013/11/20 Javascript
javascript作用域问题实例分析
2015/07/13 Javascript
js实现向右横向滑出的二级菜单效果
2015/08/27 Javascript
深入解析Backbone.js框架的依赖库Underscore.js的作用
2016/05/07 Javascript
纯JS前端实现分页代码
2016/06/21 Javascript
详解Bootstrap各式各样的按钮(推荐)
2016/12/13 Javascript
Vue 进阶教程之v-model详解
2017/05/06 Javascript
jQuery幻灯片插件owlcarousel参数说明中文文档
2018/02/27 jQuery
如何解决.vue文件url引用文件的问题
2019/01/18 Javascript
layui表格设计以及数据初始化详解
2019/10/26 Javascript
原生js实现商品筛选功能
2019/10/28 Javascript
浅谈webpack和webpack-cli模块源码分析
2020/01/19 Javascript
vue+elementUI 实现内容区域高度自适应的示例
2020/09/26 Javascript
vue data有值,但是页面{{}} 取不到值的解决
2020/11/09 Javascript
[01:00]一分钟回顾2018DOTA2亚洲邀请赛现场活动
2018/04/07 DOTA
python安装以及IDE的配置教程
2015/04/29 Python
学习python中matplotlib绘图设置坐标轴刻度、文本
2018/02/07 Python
Python操作word常见方法示例【win32com与docx模块】
2018/07/17 Python
python滑块验证码的破解实现
2019/11/10 Python
迪卡侬荷兰官网:Decathlon荷兰
2017/10/29 全球购物
日语专业毕业生自荐信
2013/11/11 职场文书
文艺晚会主持词
2014/03/24 职场文书
一次性工伤赔偿协议书范本
2014/11/25 职场文书
2014年环保工作总结
2014/11/26 职场文书
检讨书范文500字
2015/01/28 职场文书
我的1919观后感
2015/06/03 职场文书
学生会部长竞选稿
2015/11/19 职场文书
tensorflow+k-means聚类简单实现猫狗图像分类的方法
2021/04/28 Python