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 cout&amp;lt;&amp;lt;的一点看法
Jan 24 PHP
php和数据库结合的一个简单的web实例 代码分析 (php初学者)
Jul 28 PHP
php通过递归方式复制目录和子目录的方法
Mar 13 PHP
thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法
May 21 PHP
PHP使用逆波兰式计算工资的方法
Jul 29 PHP
php好代码风格的阶段性总结
Jun 25 PHP
Laravel5.1自定义500错误页面示例
Oct 09 PHP
PHPCMS忘记后台密码的解决办法
Oct 30 PHP
PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)
Dec 02 PHP
记录一次排查PHP脚本执行卡住的问题
Dec 27 PHP
Laravel5.4框架使用socialite实现github登录的方法
Mar 20 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
Mar 24 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
农民C键的运用技巧
2020/03/04 星际争霸
NOD32 v2.70.32 简体中文封装版 提供下载了
2007/02/27 PHP
深入解析PHP内存管理之谁动了我的内存
2013/06/20 PHP
一个很简单的办法实现TD的加亮效果.
2006/06/29 Javascript
js实现checkbox全选、不选与反选的方法
2015/02/09 Javascript
使用javascript提交form表单方法汇总
2015/06/25 Javascript
基于jquery编写分页插件
2016/03/07 Javascript
解析js如何获取css样式
2016/12/11 Javascript
你不知道的 javascript【推荐】
2017/01/08 Javascript
bootstrapValidator.min.js表单验证插件
2017/02/09 Javascript
jQuery实现遍历复选框的方法示例
2017/03/06 Javascript
JS实现点击链接切换显示隐藏内容的方法
2017/10/19 Javascript
JS实现的合并多个数组去重算法示例
2018/04/11 Javascript
React注册倒计时功能的实现
2018/09/06 Javascript
js中事件对象和事件委托的介绍
2019/01/21 Javascript
vue中v-text / v-html使用实例代码详解
2019/04/02 Javascript
Nodejs 数组的队列以及forEach的应用详解
2021/02/25 NodeJs
[02:50]【扭转乾坤,只此一招】DOTA2全新版本永雾林渊开启新篇章
2020/12/24 DOTA
python使用arcpy.mapping模块批量出图
2017/03/06 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
2017/11/01 Python
python函数式编程学习之yield表达式形式详解
2018/03/25 Python
Python异常的检测和处理方法
2018/10/26 Python
Python实现的旋转数组功能算法示例
2019/02/23 Python
canvas生成带二维码海报的踩坑记录
2019/09/11 HTML / CSS
lookfantastic荷兰:在线购买奢华护肤、护发和化妆品
2018/11/27 全球购物
澳大利亚家庭花园和DIY工具网店:VidaXL
2019/05/03 全球购物
耐克亚太地区:Nike APAC
2019/12/07 全球购物
公司培训欢迎词
2014/01/10 职场文书
社区安全检查制度
2014/02/03 职场文书
企业元宵节主持词
2014/03/25 职场文书
感恩母亲节演讲稿
2014/05/07 职场文书
公司行政专员岗位职责
2014/08/24 职场文书
六一儿童节园长致辞
2015/07/31 职场文书
python实现简单的井字棋
2021/05/26 Python
Python学习之异常中的finally使用详解
2022/03/16 Python
Python学习之迭代器详解
2022/04/01 Python