确保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 相关文章推荐
实现 win2003 下 mysql 数据库每天自动备份
Dec 06 PHP
PHP 读取Postgresql中的数组
Apr 14 PHP
PHP把JPEG图片转换成Progressive JPEG的方法
Jun 30 PHP
php中操作memcached缓存进行增删改查数据的实现代码
Aug 15 PHP
推荐10个提供免费PHP脚本下载的网站
Dec 31 PHP
php创建、获取cookie及基础要点分析
Jan 26 PHP
讲解WordPress开发中一些常用的debug技巧
Dec 18 PHP
PHP与Ajax相结合实现登录验证小Demo
Mar 16 PHP
php简单实现数组分页的方法
Apr 30 PHP
thinkPHP5.0框架开发规范简介
Mar 25 PHP
PHP cURL获取微信公众号access_token的实例
Apr 28 PHP
laravel5.1 ajax post 传值_token示例
Oct 24 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把小数转成整数3种方法
2014/06/30 PHP
PHP判断数据库中的记录是否存在的方法
2014/11/14 PHP
PHP生成plist数据的方法
2015/06/16 PHP
PHP数学运算函数大汇总(经典值得收藏)
2016/04/01 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
YII2.0框架行为(Behavior)深入详解
2019/07/26 PHP
thinkphp5框架实现数据库读取的数据转换成json格式示例
2019/10/10 PHP
Ajax::prototype 源码解读
2007/01/22 Javascript
jquery下动态显示jqGrid以及jqGrid的属性设置容易出现问题的解决方法
2010/10/22 Javascript
关于JavaScript的面向对象和继承有利新手学习
2013/01/11 Javascript
js实现简单的星级选择器提交效果适用于评论等
2013/10/18 Javascript
JS如何判断移动端访问设备并解析对应CSS
2013/11/27 Javascript
vue.js图片转Base64上传图片并预览的实现方法
2018/08/02 Javascript
JavaScript中0、空字符串、'0'是true还是false的知识点分享
2019/09/16 Javascript
vue项目创建步骤及路由router
2020/01/14 Javascript
Python写的一个定时重跑获取数据库数据
2016/12/28 Python
Python判断telnet通不通的实例
2019/01/26 Python
python内存监控工具memory_profiler和guppy的用法详解
2019/07/29 Python
Python格式化输出--%s,%d,%f的代码解析
2020/04/29 Python
Spring http服务远程调用实现过程解析
2020/06/11 Python
python PyAUtoGUI库实现自动化控制鼠标键盘
2020/09/09 Python
Python实现PS滤镜中的USM锐化效果
2020/12/04 Python
HTML5中使用postMessage实现Ajax跨域请求的方法
2016/04/19 HTML / CSS
简单html5代码获取地理位置
2014/03/31 HTML / CSS
世界上最大的汽车共享网站:Zipcar
2017/01/14 全球购物
奥地利购买珠宝和手表网站:ELLA JUWELEN
2019/09/03 全球购物
德国富尔达运动鞋店:43einhalb
2020/12/25 全球购物
会计师事务所审计实习自我鉴定
2013/09/20 职场文书
临床医学专业个人的自我评价
2013/09/27 职场文书
新学期班主任寄语
2014/01/18 职场文书
行政管理专业求职信
2014/07/06 职场文书
客服专员岗位职责
2015/02/10 职场文书
工作自我推荐信范文
2015/03/25 职场文书
农业项目合作意向书
2015/05/08 职场文书
体育委员竞选稿
2015/11/21 职场文书
vue+springboot实现登录验证码
2021/05/27 Vue.js