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中使用XML
Oct 09 PHP
简单易用的计数器(数据库)
Oct 09 PHP
PHP XML操作类DOMDocument
Dec 16 PHP
php中计算时间差的几种方法
Dec 31 PHP
用sql命令修改数据表中的一个字段为非空(not null)的语句
Jun 04 PHP
php中将字符串转为HTML的实体引用的一个类
Feb 03 PHP
PHP 处理TXT文件(打开/关闭/检查/读取)
May 13 PHP
php中fsockopen用法实例
Jan 05 PHP
ThinkPHP静态缓存简单配置和使用方法详解
Mar 23 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
Jul 31 PHP
PHP7基于curl实现的上传图片功能
May 11 PHP
PHP使用pdo连接access数据库并循环显示数据操作示例
Jun 05 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
收音机频率指针指示不准确和灵敏度低问题
2021/03/02 无线电
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
Laravel Memcached缓存驱动的配置与应用方法分析
2016/10/08 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
2017/07/26 PHP
PHP获取真实IP及IP模拟方法解析
2020/11/24 PHP
jquery+json实现的搜索加分页效果
2010/03/31 Javascript
Ubuntu 11.10 安装Node.js的方法
2011/11/30 Javascript
JS判断不同分辨率调用不同的CSS样式文件实现思路及测试代码
2013/01/23 Javascript
jQuery查询数据返回object和字符串影响原因是什么
2013/08/09 Javascript
对table和ul实现js分页示例分享
2014/02/24 Javascript
javascript 回调函数详解
2014/11/11 Javascript
innerHTML在IE中报错解决方案
2014/12/15 Javascript
jQuery.ajax 跨域请求webapi设置headers的解决方案
2016/08/08 Javascript
input框中的name和id的区别
2016/11/16 Javascript
JavaScript标准对象_动力节点Java学院整理
2017/06/27 Javascript
koa-router源码学习小结
2018/09/07 Javascript
node.js处理前端提交的GET请求
2019/08/30 Javascript
对layui初始化列表的CheckBox属性详解
2019/09/13 Javascript
layui问题之自动滚动二级iframe页面到指定位置的方法
2019/09/18 Javascript
vue与iframe之间的信息交互的实现
2020/04/08 Javascript
three.js 实现露珠滴落动画效果的示例代码
2021/03/01 Javascript
[54:51]Ti4 冒泡赛第二轮LGD vs C9 3
2014/07/14 DOTA
python分析网页上所有超链接的方法
2015/05/08 Python
python网络编程之数据传输UDP实例分析
2015/05/20 Python
Zabbix实现微信报警功能
2016/10/09 Python
pycharm中显示CSS提示的知识点总结
2019/07/29 Python
Django中使用MySQL5.5的教程
2019/12/18 Python
Python + selenium + crontab实现每日定时自动打卡功能
2020/03/31 Python
英国知名的皮手套品牌:Dents
2016/11/13 全球购物
PHP开发的一般流程
2013/08/13 面试题
文员自我评价怎么写
2013/09/19 职场文书
缓刑人员的思想汇报
2014/01/11 职场文书
企业消防安全制度
2014/02/02 职场文书
实习单位评语
2014/04/26 职场文书
《桃林那间小木屋》教学反思
2014/05/01 职场文书
人事主管岗位职责
2015/02/04 职场文书