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 相关文章推荐
玩转图像函数库―常见图形操作
Sep 03 PHP
php下目前为目最全的CURL中文说明
Aug 01 PHP
PHP 函数执行效率的小比较
Oct 17 PHP
php设计模式 Singleton(单例模式)
Jun 26 PHP
PHP中获取内网用户MAC地址(WINDOWS/linux)的实现代码
Aug 11 PHP
PHP隐形一句话后门,和ThinkPHP框架加密码程序(base64_decode)
Nov 02 PHP
php中长文章分页显示实现代码
Sep 29 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
Jun 19 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
Nov 19 PHP
yii用户注册表单验证实例
Dec 26 PHP
在Mac OS上搭建PHP的Yii框架及相关测试环境
Feb 14 PHP
100行PHP代码实现socks5代理服务器
Apr 28 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
在apache下限制每个虚拟主机的并发数!!!!
2006/10/09 PHP
php实现的太平洋时间和北京时间互转的自定义函数分享
2014/08/19 PHP
PHP串行化与反串行化实例分析
2016/12/27 PHP
游戏人文件夹程序 ver 4.03
2006/07/14 Javascript
JQuery 获取和设置Select选项的代码
2010/02/07 Javascript
在UpdatePanel内jquery easyui效果失效的解决方法
2010/04/11 Javascript
IE本地存储userdata的一个bug说明
2010/07/01 Javascript
jQuery$命名冲突怎么办如何解决
2014/01/16 Javascript
JavaScript实现的石头剪刀布游戏源码分享
2014/08/22 Javascript
14个有用的Jquery技巧分享
2015/01/08 Javascript
jQuery实现首页图片淡入淡出效果的方法
2015/06/10 Javascript
深入理解JavaScript编程中的同步与异步机制
2015/06/24 Javascript
jQuery插件之jQuery.Form.js用法实例分析(附demo示例源码)
2016/01/04 Javascript
Vue2.x中的父组件传递数据至子组件的方法
2017/05/01 Javascript
JS库 Highlightjs 添加代码行号的实现代码
2017/09/13 Javascript
JavaScript回调函数callback用法解析
2020/01/14 Javascript
javascript绘制简单钟表效果
2020/04/07 Javascript
vue实现一个矩形标记区域(rectangle marker)的方法
2020/10/28 Javascript
Python时间模块datetime、time、calendar的使用方法
2016/01/13 Python
pandas DataFrame 删除重复的行的实现方法
2019/01/29 Python
pytorch-神经网络拟合曲线实例
2020/01/15 Python
Python3.6安装卸载、执行命令、执行py文件的方法详解
2020/02/20 Python
基于python调用jenkins-cli实现快速发布
2020/08/14 Python
解决Python安装cryptography报错问题
2020/09/03 Python
Python3压缩和解压缩实现代码
2021/03/01 Python
Champs Sports加拿大:北美最大的以商场为基础的专业运动鞋和服装零售商之一
2018/05/01 全球购物
全球性的众包图形设计市场:DesignCrowd
2021/02/02 全球购物
电子商务自荐书范文
2014/01/04 职场文书
2013年研究生毕业感言
2014/02/06 职场文书
八项规定自查自纠报告及整改措施
2014/10/26 职场文书
2014年音乐教师工作总结
2014/12/03 职场文书
2014年小学数学工作总结
2014/12/12 职场文书
党员反邪教心得体会
2016/01/15 职场文书
毕业生自荐求职信书写的技巧
2019/08/26 职场文书
忆童年!用Python实现愤怒的小鸟游戏
2021/06/07 Python
SQL 尚未定义空闲 CPU 条件 - OnIdle 作业计划将不起任何作用
2021/06/30 SQL Server