确保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 相关文章推荐
PHP中register_globals参数为OFF和ON的区别(register_globals 使用详解)
Feb 05 PHP
C#使用PHP服务端的Web Service通信实例
Apr 08 PHP
PHP实现单例模式最安全的做法
Jun 13 PHP
PHP中使用php://input处理相同name值的表单数据
Feb 03 PHP
php操作(删除,提取,增加)zip文件方法详解
Mar 12 PHP
php自定义hash函数实例
May 05 PHP
百度工程师讲PHP函数的实现原理及性能分析(一)
May 13 PHP
Laravel中Trait的用法实例详解
Mar 16 PHP
PHP会话控制实例分析
Dec 24 PHP
浅析php如何实现爬取数据原理
Sep 27 PHP
PHP从尾到头打印链表实例讲解
Sep 27 PHP
Yii框架视图、视图布局、视图数据块操作示例
Oct 14 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程序
2012/02/04 PHP
PHP实现的一致性Hash算法详解【分布式算法】
2018/03/31 PHP
JavaScript高级程序设计(第3版)学习笔记6 初识js对象
2012/10/11 Javascript
js运动框架_包括图片的淡入淡出效果
2013/05/11 Javascript
用JavaScript实现动画效果的方法
2013/07/20 Javascript
如何让DIV可编辑、可拖动示例代码
2013/09/18 Javascript
jquery showModelDialog的使用方法示例详解
2013/11/19 Javascript
Extjs中RowExpander控件的默认展开问题示例探讨
2014/01/24 Javascript
JavaScript实现列表分页功能特效
2015/05/15 Javascript
jQuery检查元素存在性(推荐)
2016/09/17 Javascript
Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题
2017/02/27 Javascript
详解Vue中使用v-for语句抛出错误的解决方案
2017/05/04 Javascript
ES6解构赋值实例详解
2017/10/31 Javascript
[15:23]教你分分钟做大人:虚空假面
2014/10/30 DOTA
Python编程中归并排序算法的实现步骤详解
2016/05/04 Python
Python中最大最小赋值小技巧(分享)
2017/12/23 Python
python生成tensorflow输入输出的图像格式的方法
2018/02/12 Python
Python解决线性代数问题之矩阵的初等变换方法
2018/12/12 Python
Python实现的KMeans聚类算法实例分析
2018/12/29 Python
python中import与from方法总结(推荐)
2019/03/21 Python
利用Python绘制Jazz网络图的例子
2019/11/21 Python
Python 开发工具PyCharm安装教程图文详解(新手必看)
2020/02/28 Python
Python3自定义json逐层解析器代码
2020/05/11 Python
python要安装在哪个盘
2020/06/15 Python
HTML5 Canvas玩转酷炫大波浪进度图效果实例(附demo)
2016/12/14 HTML / CSS
美国在线奢侈品寄售商店:Luxury Garage Sale
2018/08/19 全球购物
What is view? why do we have view?
2012/06/22 面试题
大学生简历的个人自我评价
2013/12/04 职场文书
高二生物教学反思
2014/01/27 职场文书
2014政府领导班子对照检查材料思想汇报(3篇)
2014/09/26 职场文书
2014年图书室工作总结
2014/12/09 职场文书
工作失职检讨书范文
2015/05/05 职场文书
2015入党自传格式范文
2015/06/26 职场文书
Python包argparse模块常用方法
2021/06/04 Python
Django路由层如何获取正确的url
2021/07/15 Python
python Django框架快速入门教程(后台管理)
2021/07/21 Python