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 相关文章推荐
一个简单的自动发送邮件系统(三)
Oct 09 PHP
PHP连接access数据库
Mar 27 PHP
PHP array操作10个小技巧分享
Jun 23 PHP
php数组函数序列之array_intersect() 返回两个或多个数组的交集数组
Nov 10 PHP
zend framework框架中url大小写问题解决方法
Aug 19 PHP
PHP模板引擎Smarty内置变量调解器用法详解
Apr 11 PHP
CentOS下搭建PHP环境与WordPress博客程序的全流程总结
May 07 PHP
ThinkPHP 整合Bootstrap Ajax分页样式
Dec 23 PHP
yii2 数据库读写分离配置示例
Feb 10 PHP
Laravel框架实现利用中间件进行操作日志记录功能
Jun 06 PHP
PHP全局使用Laravel辅助函数dd
Dec 26 PHP
php 使用html5 XHR2实现上传文件与进度显示功能示例
Mar 03 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 获取远程文件内容的函数代码
2010/03/24 PHP
smarty获得当前url的方法分享
2014/02/14 PHP
php异常处理使用示例
2014/02/25 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
2016/09/23 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
2020/04/27 PHP
jQuery 处理网页内容的实现代码
2010/02/15 Javascript
什么是json和jsonp,jQuery json实例详详细说明
2012/12/11 Javascript
NodeJS学习笔记之Connect中间件模块(一)
2015/01/27 NodeJs
谈谈基于iframe、FormData、FileReader三种无刷新上传文件的方法
2015/12/03 Javascript
JS实现alert中显示换行的方法
2015/12/17 Javascript
实例详解ECMAScript5中新增的Array方法
2016/04/05 Javascript
深入理解Angular2 模板语法
2016/08/07 Javascript
jQuery实现将div中滚动条滚动到指定位置的方法
2016/08/10 Javascript
Angular2.js实现表单验证详解
2017/06/23 Javascript
JavaScript实现购物车基本功能
2017/07/21 Javascript
基于jQuery解决ios10以上版本缩放问题
2017/11/03 jQuery
angularjs使用div模拟textarea文本框的方法
2018/10/02 Javascript
微信小程序实现单列下拉菜单效果
2019/04/25 Javascript
详解小程序开发经验:多页面数据同步
2019/05/18 Javascript
vue 解除鼠标的监听事件的方法
2019/11/13 Javascript
Node.js API详解之 console模块用法详解
2020/05/12 Javascript
javascript实现页面的实时时钟显示示例
2020/08/06 Javascript
[02:41]2015国际邀请赛中国区预选赛观战指南
2015/05/20 DOTA
实例解析Python的Twisted框架中Deferred对象的用法
2016/05/25 Python
python实现简单神经网络算法
2018/03/10 Python
用python标准库difflib比较两份文件的异同详解
2018/11/16 Python
Django model 中设置联合约束和联合索引的方法
2019/08/06 Python
使用Python快乐学数学Github万星神器Manim简介
2019/08/07 Python
全球最大的跑步用品商店:Road Runner Sports
2016/09/11 全球购物
党风廉政承诺书
2014/03/27 职场文书
班主任寄语大全
2014/04/04 职场文书
小学生三分钟演讲稿
2014/08/18 职场文书
2014医学院领导干部四风对照检查材料思想汇报
2014/09/16 职场文书
2015年小学教师培训工作总结
2015/07/21 职场文书
Python基础 括号()[]{}的详解
2021/11/07 Python
使用pd.merge表连接出现多余行的问题解决
2022/06/16 Python