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 相关文章推荐
第一节--面向对象编程
Nov 16 PHP
php 正则匹配函数体
Aug 25 PHP
php修改时间格式的代码
May 29 PHP
PHP版国家代码、缩写查询函数代码
Aug 14 PHP
php生成excel列序号代码实例
Dec 24 PHP
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
May 15 PHP
ThinkPHP中的常用查询语言汇总
Aug 22 PHP
php+mysqli数据库连接的两种方式
Jan 28 PHP
PHP引用的调用方法分析
Apr 25 PHP
Yii2 输出xml格式数据的方法
May 03 PHP
PHP 等比例缩放图片详解及实例代码
Sep 18 PHP
PHP实现数组转JSon和JSon转数组的方法示例
Jun 14 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 stristr() 函数(不区分大小写的字符串查找)
2010/06/03 PHP
使用PHP Socket写的POP3类
2013/10/30 PHP
PHP字符串比较函数strcmp()和strcasecmp()使用总结
2014/11/19 PHP
php获取系统变量方法小结
2015/05/29 PHP
golang与php实现计算两个经纬度之间距离的方法
2016/07/22 PHP
PHP之十六个魔术方法详细介绍
2016/11/01 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
2018/01/21 PHP
javascript面向对象之Javascript 继承
2010/05/04 Javascript
模拟jQuery ajax服务器端与客户端通信的代码
2011/03/28 Javascript
JS定义回车事件(实现代码)
2013/07/08 Javascript
Select2.js下拉框使用小结
2016/10/24 Javascript
less简单入门(CSS 预处理语言)
2017/03/08 Javascript
利用10行js代码实现上下滚动公告效果
2017/12/08 Javascript
vue click.stop阻止点击事件继续传播的方法
2018/09/04 Javascript
js获取本日、本周、本月的时间代码
2020/02/01 Javascript
jQuery实现的分页插件完整示例
2020/05/26 jQuery
Vue 解决在element中使用$notify在提示信息中换行问题
2020/11/11 Javascript
[01:06:25]Secret vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
[01:09:13]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第三场 1月19日
2021/03/11 DOTA
Python+OpenCV让电脑帮你玩微信跳一跳
2018/01/04 Python
Python实现读取机器硬件信息的方法示例
2018/06/09 Python
python通过Windows下远程控制Linux系统
2018/06/20 Python
对python指数、幂数拟合curve_fit详解
2018/12/29 Python
linux环境下安装python虚拟环境及注意事项
2020/01/07 Python
python发qq消息轰炸虐狗好友思路详解(完整代码)
2020/02/15 Python
Python 实现将大图切片成小图,将小图组合成大图的例子
2020/03/14 Python
tensorflow指定CPU与GPU运算的方法实现
2020/04/21 Python
Python request中文乱码问题解决方案
2020/09/17 Python
python3排序的实例方法
2020/10/20 Python
意大利香水和彩妆护肤品购物网站:Ditano
2017/08/13 全球购物
预备党员转正考核材料
2014/06/03 职场文书
“四风”问题对照检查材料思想汇报
2014/09/16 职场文书
邮政营业员岗位职责
2015/04/14 职场文书
描述鲁迅的名言整理,一生受用
2019/08/08 职场文书
高一作文之乐趣
2019/11/21 职场文书
Python+Matplotlib图像上指定坐标的位置添加文本标签与注释
2022/04/11 Python