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 代码优化的42条建议 推荐
Sep 25 PHP
php中批量替换文件名的实现代码
Jul 20 PHP
深入分析php中接口与抽象类的区别
Jun 08 PHP
PHP以指定字段为索引返回数据库所取的数据数组
Jun 30 PHP
采用ThinkPHP中F方法实现快速缓存实例
Jun 13 PHP
php实现给图片加灰色半透明效果的方法
Oct 20 PHP
PHP中使用GD库绘制折线图 折线统计图的绘制方法
Nov 09 PHP
PHP获取昨天、今天及明天日期的方法
Feb 03 PHP
php加密解密字符串示例
Oct 13 PHP
PHP中error_reporting函数用法详细介绍
Jun 11 PHP
PHP利用Cookie设置用户30分钟未操作自动退出功能
Jul 03 PHP
php插入mysql数据返回id的方法
May 31 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开发环境配置(MySQL数据库安装图文教程)
2010/04/28 PHP
探讨file_get_contents与curl效率及稳定性的分析
2013/06/06 PHP
php生成rss类用法实例
2015/04/14 PHP
PHP删除数组中指定下标的元素方法
2018/02/03 PHP
PHP实现普通hash分布式算法简单示例
2018/08/06 PHP
HR vs CL BO3 第一场 2.13
2021/03/10 DOTA
jquery1.9 下检测浏览器类型和版本的方法
2013/12/26 Javascript
jQuery操作元素css样式的三种方法
2014/06/04 Javascript
一个小例子解释如何来阻止Jquery事件冒泡
2014/07/17 Javascript
javascript模拟map输出与去除重复项的方法
2015/02/09 Javascript
Javascript发送AJAX请求实例代码
2016/08/21 Javascript
实现一个简单的vue无限加载指令方法
2017/01/10 Javascript
Bootstrap table表格简单操作
2017/02/07 Javascript
详解Vue源码之数据的代理访问
2018/12/11 Javascript
JavaScript时间日期操作实例小结【5个示例】
2018/12/22 Javascript
解决layui 表单元素radio不显示渲染的问题
2019/09/04 Javascript
JS实现判断移动端PC端功能
2020/02/21 Javascript
javascript实现前端分页效果
2020/06/24 Javascript
[00:44]2016完美“圣”典 风云人物:Mikasa宣传片
2016/12/07 DOTA
理解Python中的类与实例
2015/04/27 Python
基于Python如何使用AIML搭建聊天机器人
2016/01/27 Python
Python实现正整数分解质因数操作示例
2018/08/01 Python
python学生管理系统开发
2019/01/30 Python
python绘制直方图和密度图的实例
2019/07/08 Python
Python学习笔记之字符串和字符串方法实例详解
2019/08/22 Python
Python用5行代码实现批量抠图的示例代码
2020/04/14 Python
Python坐标轴操作及设置代码实例
2020/06/04 Python
Html5游戏开发之乒乓Ping Pong游戏示例(一)
2013/01/21 HTML / CSS
建筑节能汇报材料
2014/08/22 职场文书
报名委托书
2015/01/29 职场文书
副总经理岗位职责范本
2015/04/08 职场文书
2015年销售内勤工作总结
2015/04/27 职场文书
2015年网络舆情工作总结
2015/07/24 职场文书
2019垃圾分类宣传口号汇总
2019/08/16 职场文书
能用CSS实现的就不要麻烦JavaScript了
2021/10/05 HTML / CSS
Mysql排序的特性详情
2021/11/01 MySQL