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 11 PHP
探讨如何在php168_cms中提取验证码
Jun 08 PHP
PHP6 中可能会出现的新特性预览
Apr 04 PHP
PHP中使用sleep函数实现定时任务实例分享
Aug 21 PHP
PHP人民币金额转大写实例代码
Oct 02 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
Aug 29 PHP
CI框架(CodeIgniter)操作redis的方法详解
Jan 25 PHP
PHP使用Redis长连接的方法详解
Feb 12 PHP
PHP addAttribute()函数讲解
Feb 03 PHP
PHP读取目录树的实现方法分析
Mar 22 PHP
php把文件设置为插件的技巧方法
Feb 03 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
Mar 26 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生成Flash动画的实现代码
2010/03/12 PHP
ThinkPHP自动验证失败的解决方法
2011/06/09 PHP
php 字符串替换的方法
2012/01/10 PHP
PHP扩展mcrypt实现的AES加密功能示例
2019/01/29 PHP
JS获取屏幕,浏览器窗口大小,网页高度宽度(实现代码)
2013/12/17 Javascript
超简单JS二级、多级联动的简单实例
2014/02/18 Javascript
Ajax请求在数据量大的时候出现超时的解决方法
2014/02/27 Javascript
浅谈javascript中自定义模版
2015/01/29 Javascript
js实现单击图片放大图片的方法
2015/02/17 Javascript
nodejs中实现阻塞实例
2015/03/24 NodeJs
Jquery全选与反选点击执行一次的解决方案
2015/08/14 Javascript
深入浅析JavaScript中的constructor
2016/04/19 Javascript
jquery+css3问卷答题卡翻页动画效果示例
2016/10/26 Javascript
ES6正则表达式的一些新功能总结
2017/05/09 Javascript
jQuery实现表格冻结顶栏效果
2017/08/20 jQuery
详解Vue实战指南之依赖注入(provide/inject)
2018/11/13 Javascript
Vue 动态组件与 v-once 指令的实现
2019/02/12 Javascript
微信小程序实现判断是分享到群还是个人功能示例
2019/05/03 Javascript
javascript实现异形滚动轮播
2019/11/28 Javascript
Vue2.4+新增属性.sync、$attrs、$listeners的具体使用
2020/03/08 Javascript
Jquery高级应用Deferred对象原理及使用实例
2020/05/28 jQuery
Sublime开发python程序的示例代码
2018/01/24 Python
详解Python中的type和object
2018/08/15 Python
python3+requests接口自动化session操作方法
2018/10/13 Python
python通过TimedRotatingFileHandler按时间切割日志
2019/07/17 Python
解决Django中修改js css文件但浏览器无法及时与之改变的问题
2019/08/31 Python
春节到了 教你使用python来抢票回家
2020/01/06 Python
python数据预处理 :样本分布不均的解决(过采样和欠采样)
2020/02/29 Python
python matplotlib包图像配色方案分享
2020/03/14 Python
CSS3 mask 遮罩的具体使用方法
2017/11/03 HTML / CSS
关于热爱祖国的演讲稿
2014/05/04 职场文书
关于环保的标语
2014/06/13 职场文书
离婚协议书范文2014(夫妻感情破裂)
2014/12/14 职场文书
社区安置帮教工作总结2015
2015/05/20 职场文书
煤矿安全生产管理协议书
2016/03/22 职场文书
基于python的matplotlib制作双Y轴图
2021/04/20 Python