确保Laravel网站不会被嵌入到其他站点中的方法


Posted in PHP onOctober 18, 2019

HTTP 响应头部中,有一个字段,叫做 X-Frame-Options,该字段可以用来指示是否允许自己的网站被嵌入到其他网站的 <iframe> 或者 <object> 标签中。该头部有三个值

  1. DENY - 始终不允许嵌入,即使是同一个域名
  2. SAMEORIGIN - 只能在相同域名中嵌入
  3. ALLOW-FROM uri - 设置允许的域

通常,可以在 HTTP 代理中进行配置,比如 nginx

add_header X-Frame-Options SAMEORIGIN;

Laravel 自带了用来「只允许同域名嵌入」的中间件,我们只需要在 /app/Http/Kernel.php 中添加即可

// /app/Http/Kernel.php
protected $middleware = [
  \Illuminate\Http\Middleware\FrameGuard::class,
];

该中间件的实现如下

<?php

namespace Illuminate\Http\Middleware;

use Closure;

class FrameGuard
{
  /**
   * Handle the given request and get the response.
   *
   * @param \Illuminate\Http\Request $request
   * @param \Closure $next
   * @return \Symfony\Component\HttpFoundation\Response
   */
  public function handle($request, Closure $next)
  {
    $response = $next($request);

    $response->headers->set('X-Frame-Options', 'SAMEORIGIN', false);

    return $response;
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
Mysql的常用命令
Oct 09 PHP
php4的session功能评述(一)
Oct 09 PHP
用PHP查询域名状态whois的类
Nov 25 PHP
php 如何获取数组第一个值
Aug 06 PHP
php漏洞之跨网站请求伪造与防止伪造方法
Aug 15 PHP
详解WordPress中添加和执行动作的函数使用方法
Dec 29 PHP
注意!PHP 7中不要做的10件事
Sep 18 PHP
thinkPHP线上自动加载异常与修复方法实例分析
Dec 01 PHP
Yii2下点击验证码的切换实例代码
Mar 14 PHP
PHP Laravel 上传图片、文件等类封装
Aug 16 PHP
PhpStorm配置Xdebug调试的方法步骤
Feb 02 PHP
PHP如何将图片文件上传到另外一台服务器上
Aug 26 PHP
PHP的Trait机制原理与用法分析
Oct 18 #PHP
tp5修改(实现即点即改)
Oct 18 #PHP
在TP5数据库中四个字段实现无限分类的示例
Oct 18 #PHP
PHP getID3类的使用方法学习笔记【附getID3源码下载】
Oct 18 #PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
Oct 18 #PHP
tp5.1 实现setInc字段自动加1
Oct 18 #PHP
php 比较获取两个数组相同和不同元素的例子(交集和差集)
Oct 18 #PHP
You might like
一个可查询所有表的“通用”查询分页类
2006/10/09 PHP
论坛头像随机变换代码
2006/10/09 PHP
thinkphp模板的包含与渲染实例分析
2014/11/26 PHP
帝国cms目录结构分享
2015/07/06 PHP
php生成静态页面并实现预览功能
2019/06/27 PHP
JavaScript基本对象
2007/01/11 Javascript
js Dialog 实践分享
2012/10/22 Javascript
jQuery跨域问题解决方案
2015/08/03 Javascript
JQuery fileupload插件实现文件上传功能
2016/03/18 Javascript
浅谈js基本数据类型和typeof
2016/08/09 Javascript
jQuery实现简单的网页换肤效果示例
2016/09/18 Javascript
js倒计时小实例(多次定时)
2016/12/08 Javascript
微信小程序实现实时圆形进度条的方法示例
2017/02/24 Javascript
JS实现数组去重方法总结(六种方法)
2017/07/14 Javascript
js Array.slice的8种不同用法示例
2019/07/10 Javascript
Vue2.0 $set()的正确使用详解
2020/07/28 Javascript
Openlayers显示地理位置坐标的方法
2020/09/28 Javascript
python中随机函数random用法实例
2015/04/30 Python
python使用wmi模块获取windows下硬盘信息的方法
2015/05/15 Python
Python中if __name__ == '__main__'作用解析
2015/06/29 Python
Python基于socket实现简单的即时通讯功能示例
2018/01/16 Python
python opencv实现信用卡的数字识别
2020/01/12 Python
如何基于Python + requests实现发送HTTP请求
2020/01/13 Python
python实现ftp文件传输功能
2020/03/20 Python
浅谈Python描述数据结构之KMP篇
2020/09/06 Python
css3实现图片遮罩效果鼠标hover以后出现文字
2013/11/05 HTML / CSS
JINS眼镜官方网站:日本最大的眼镜邮购
2016/10/14 全球购物
工地资料员岗位职责
2013/12/31 职场文书
开展党的群众路线教育实践活动方案
2014/02/05 职场文书
在校大学生的职业生涯规划书
2014/03/14 职场文书
化工操作工岗位职责
2014/04/29 职场文书
维稳工作承诺书
2015/01/20 职场文书
英文自荐信范文
2015/03/25 职场文书
保密法制宣传月活动总结
2015/05/07 职场文书
继承Win10缺点!教你关闭Win11烦人的网络搜索
2021/11/23 数码科技
MySQL数据库如何给表设置约束详解
2022/03/13 MySQL