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无敌近乎加密方式!
Jul 17 PHP
解析PHP中ob_start()函数的用法
Jun 24 PHP
php+mysql数据库实现无限分类的方法
Dec 12 PHP
php静态文件生成类实例分析
Jan 03 PHP
PHP制作用户注册系统
Oct 23 PHP
yii2.0实现验证用户名与邮箱功能
Dec 22 PHP
php中mkdir()函数的权限问题分析
Sep 24 PHP
PHP查询大量数据内存耗尽问题的解决方法
Oct 28 PHP
PHP与jquery实时显示网站在线人数实例详解
Dec 02 PHP
Yii Framework框架使用PHPExcel组件的方法示例
Jul 24 PHP
Laravel 中使用简单的方法跟踪用户是否在线(推荐)
Oct 30 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
Thinkphp 3.2框架使用Redis的方法详解
2019/10/24 PHP
Javascript日期对象的dateAdd与dateDiff方法
2008/11/18 Javascript
jQuery textarea的长度进行验证
2009/05/06 Javascript
JS代码优化技巧之通俗版(减少js体积)
2011/12/23 Javascript
javascript学习笔记(十八) 获得页面中的元素代码
2012/06/20 Javascript
javascript获取网页中指定节点的父节点、子节点的方法小结
2013/04/24 Javascript
浅析JavaScript原型继承的陷阱
2013/12/03 Javascript
extJS中常用的4种Ajax异步提交方式
2014/03/07 Javascript
JavaScript判断一个字符串是否包含指定子字符串的方法
2015/03/18 Javascript
Prototype框架详解
2015/11/25 Javascript
详解Weex基于Vue2.0开发模板搭建
2017/03/20 Javascript
JavaScript用二分法查找数据的实例代码
2017/06/17 Javascript
[js高手之路]设计模式系列课程-发布者,订阅者重构购物车的实例
2017/08/29 Javascript
Vue 去除路径中的#号
2018/04/19 Javascript
详解在React.js中使用PureComponent的重要性和使用方式
2018/07/10 Javascript
vue.js配合$.post从后台获取数据简单demo分享
2018/08/11 Javascript
jQuery中each遍历的三种方法实例分析
2018/09/07 jQuery
Vue循环中多个input绑定指定v-model实例
2020/08/31 Javascript
Ant-design-vue Table组件customRow属性的使用说明
2020/10/28 Javascript
解决vue项目本地启动时无法携带cookie的问题
2021/02/06 Vue.js
[04:20]DOTA2-DPC中国联赛 正赛 VG vs LBZS 选手采访 1月19日
2021/03/11 DOTA
python中的yield使用方法
2014/02/11 Python
详细介绍Ruby中的正则表达式
2015/04/10 Python
用Python的Django框架编写从Google Adsense中获得报表的应用
2015/04/17 Python
Python利用matplotlib生成图片背景及图例透明的效果
2017/04/27 Python
python可视化篇之流式数据监控的实现
2019/08/07 Python
如何使用python进行pdf文件分割
2019/11/11 Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
2021/01/27 Python
HTML5之WebGL 3D概述(上)—WebGL原生开发开启网页3D渲染新时代
2013/01/31 HTML / CSS
html5定位并在百度地图上显示的示例
2014/04/27 HTML / CSS
图片上传插件ImgUploadJS:用HTML5 File API 实现截图粘贴上传、拖拽上传
2016/01/20 HTML / CSS
美国定制钻石订婚戒指:Ritani
2017/12/08 全球购物
新浪网技术部笔试题
2016/08/26 面试题
党员干部反四风对照检查材料思想汇报
2014/09/14 职场文书
一年级班主任工作总结2014
2014/11/08 职场文书
上手简单,功能强大的Python爬虫框架——feapder
2021/04/27 Python