确保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的bbs设计(三)
Oct 09 PHP
php array_intersect()函数使用代码
Jan 14 PHP
批量获取memcache值并按key的顺序返回的实现代码
Jun 14 PHP
ThinkPHP3.1新特性之动态设置自动完成和自动验证示例
Jun 19 PHP
php+ajax实现文章自动保存的方法
Dec 30 PHP
php为字符串前后添加指定数量字符的方法
May 04 PHP
php计算年龄精准到年月日
Nov 17 PHP
Yii2针对游客、用户防范规则和限制的解决方法分析
Oct 08 PHP
php加密解密字符串示例
Oct 13 PHP
laravel自定义分页效果
Jul 23 PHP
Laravle eloquent 多对多模型关联实例详解
Nov 22 PHP
浅析PHP中的 inet_pton 网络函数
Dec 16 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
让PHP支持页面回退的两种方法
2008/01/10 PHP
PHP实现补齐关闭的HTML标签
2016/03/22 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
PHP实现微信商户支付企业付款到零钱功能
2018/09/30 PHP
PHP实现微信退款的方法示例
2019/03/26 PHP
PHP 自动加载类原理与用法实例分析
2020/04/14 PHP
淘宝搜索框效果实现分析
2011/03/05 Javascript
JavaScript高级程序设计 阅读笔记(二十) js错误处理
2012/08/14 Javascript
多引号嵌套的变量命名的问题
2014/05/09 Javascript
jquery JSON的解析方式示例介绍
2014/07/27 Javascript
js中直接声明一个对象的方法
2014/08/10 Javascript
浅谈Javascript中的Function与Object
2015/01/26 Javascript
在JavaScript中处理数组之reverse()方法的使用
2015/06/09 Javascript
JavaScript实现的商品抢购倒计时功能示例
2017/04/17 Javascript
Angular 4.x中表单Reactive Forms详解
2017/04/25 Javascript
微信通过页面(H5)直接打开本地app的解决方法
2017/09/09 Javascript
解决vue多个路由共用一个页面的问题
2018/03/12 Javascript
基于 vue-skeleton-webpack-plugin 的骨架屏实战
2019/08/05 Javascript
详解关于Vue单元测试的几个坑
2020/04/26 Javascript
[01:26]DOTA2荣耀之路2:iG,China
2018/05/24 DOTA
详解Python3中yield生成器的用法
2015/08/20 Python
用pickle存储Python的原生对象方法
2017/04/28 Python
python用户评论标签匹配的解决方法
2018/05/31 Python
Python实现多线程的两种方式分析
2018/08/29 Python
Python集合基本概念与相关操作实例分析
2019/10/30 Python
python虚拟环境模块venv使用及示例
2020/03/04 Python
Python数据可视化常用4大绘图库原理详解
2020/10/23 Python
如何使用amaze ui的分页样式封装一个通用的JS分页控件
2020/08/21 HTML / CSS
教育学专业实习生的自我鉴定
2013/11/26 职场文书
会计专业大学生职业生涯规划书
2014/02/11 职场文书
卫校毕业生个人自我鉴定
2014/04/28 职场文书
设计师求职信
2014/07/01 职场文书
2014年转正工作总结
2014/11/08 职场文书
《最后一头战象》教学反思
2016/02/16 职场文书
Python趣味挑战之实现简易版音乐播放器
2021/05/28 Python
SQL Server查询某个字段在哪些表中存在
2022/03/03 SQL Server