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 04 PHP
PHP autoload与spl_autoload自动加载机制的深入理解
Jun 05 PHP
php实现的一个简单json rpc框架实例
Mar 30 PHP
PHP数组操作类实例
Jul 11 PHP
php安装ssh2扩展的方法【Linux平台】
Jul 20 PHP
详解ThinkPHP3.2.3验证码显示、刷新、校验
Dec 29 PHP
php中通过eval实现字符串格式的计算公式
Mar 18 PHP
Yii2数据库操作常用方法小结
May 04 PHP
thinkPHP5 tablib标签库自定义方法详解
May 10 PHP
学习thinkphp5.0验证类使用方法
Nov 16 PHP
php格式文件打开的四种方法
Feb 24 PHP
关于laravel5.5的定时任务详解(demo)
Oct 23 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生成excel列序号代码实例
2013/12/24 PHP
使用PHP uniqid函数生成唯一ID
2015/11/18 PHP
PHP魔术方法使用方法汇总
2016/02/14 PHP
php使用变量动态创建类的对象用法示例
2017/02/06 PHP
PHP数据库操作四:mongodb用法分析
2017/08/16 PHP
给页面渲染时间加速 干掉Dom Level 0 Event
2012/12/19 Javascript
jQuery实现点击标题输入详细信息
2013/04/16 Javascript
jQuery中:reset选择器用法实例
2015/01/04 Javascript
JavaScript设置body高度为浏览器高度的方法
2015/02/09 Javascript
学习JavaScript事件流和事件处理程序
2016/01/25 Javascript
利用Vue.js实现checkbox的全选反选效果
2017/01/18 Javascript
Vue的Flux框架之Vuex状态管理器
2017/07/30 Javascript
vue-lazyload图片延迟加载插件的实例讲解
2018/02/09 Javascript
浅谈微信JS-SDK 微信分享接口开发(介绍版)
2018/08/15 Javascript
JavaScript实现的前端AES加密解密功能【基于CryptoJS】
2018/08/28 Javascript
原生JavaScript实现滑动拖动验证的示例代码
2019/12/06 Javascript
如何利用nodejs实现命令行游戏
2020/11/24 NodeJs
vue使用echarts图表自适应的几种解决方案
2020/12/04 Vue.js
Windows下为Python安装Matplotlib模块
2015/11/06 Python
Python线性方程组求解运算示例
2018/01/17 Python
在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
2020/04/10 Python
解决python cv2.imread 读取中文路径的图片返回为None的问题
2020/06/02 Python
python如何查看网页代码
2020/06/07 Python
解决导入django_filters不成功问题No module named 'django_filter'
2020/07/15 Python
关于PySnooper 永远不要使用print进行调试的问题
2021/03/04 Python
HTML5标签大全
2016/11/23 HTML / CSS
POP文化和音乐灵感的时尚:Hot Topic
2019/06/19 全球购物
员工年终演讲稿
2014/01/03 职场文书
学校介绍信范文
2014/01/14 职场文书
关于建议书的格式范文
2014/05/20 职场文书
甘南现象心得体会
2014/09/11 职场文书
2015年政府采购工作总结
2015/05/21 职场文书
法制教育观后感
2015/06/17 职场文书
2016年国庆节假期旅游工作总结
2016/04/01 职场文书
vue3语法糖内的defineProps及defineEmits
2022/04/14 Vue.js
MySQL常用慢查询分析工具详解
2022/08/14 MySQL