确保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命名空间(Namespace)的使用详解
May 04 PHP
php自定义的格式化时间示例代码
Dec 05 PHP
ThinkPHP使用UTFWry地址库进行IP定位实例
Apr 01 PHP
在Ubuntu 14.04上部署 PHP 环境及 WordPress
Sep 02 PHP
php简单获取目录列表的方法
Mar 24 PHP
php实现统计网站在线人数的方法
May 12 PHP
phalcon model在插入或更新时会自动验证非空字段的解决办法
Dec 29 PHP
PHP基于递归实现的约瑟夫环算法示例
Aug 27 PHP
thinkphp中U方法按路由规则生成url的方法
Mar 12 PHP
PHP四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
Apr 27 PHP
laravel实现前后台路由分离的方法
Oct 13 PHP
php判断数组是否为空的实例方法
May 10 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/08/02 PHP
PHP常用的小程序代码段
2015/11/14 PHP
PHP设计模式之工厂模式与单例模式
2016/09/28 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
Laravel框架实现简单的学生信息管理平台案例
2019/05/07 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
2020/04/14 PHP
一段好玩的JavaScript代码
2006/12/01 Javascript
JavaScript asp.net 获取当前超链接中的文本
2009/04/14 Javascript
jquery文字上下滚动的实现方法
2013/03/22 Javascript
js函数定时器实现定时读取系统实时连接数
2014/04/30 Javascript
jQuery循环动画与获取组件尺寸的方法
2015/02/02 Javascript
jQuery模拟新浪微博首页滚动效果的方法
2015/03/11 Javascript
jQuery插件实现适用于移动端的地址选择器
2016/02/18 Javascript
AngularJS 与百度地图的结合实例
2016/10/20 Javascript
Vue.2.0.5实现Class 与 Style 绑定的实例
2017/06/20 Javascript
[js高手之路]HTML标签解释成DOM节点的实现方法
2017/08/31 Javascript
layui默认选中table的CheckBox复选框方法
2019/09/19 Javascript
JS 数组基本用法入门示例解析
2020/01/16 Javascript
JavaScript实现移动端带transition动画的轮播效果
2020/03/24 Javascript
antd中table展开行默认展示,且不需要前边的加号操作
2020/11/02 Javascript
Python获取远程文件大小的函数代码分享
2014/05/13 Python
Python之父谈Python的未来形式
2016/07/01 Python
Fabric 应用案例
2016/08/28 Python
Python实现生成密码字典的方法示例
2019/09/02 Python
numpy 声明空数组详解
2019/12/05 Python
Web前端页面跳转并取到值
2017/04/24 HTML / CSS
canvas 绘图时位置偏离的问题解决
2020/09/16 HTML / CSS
Under Armour美国官网:美国知名高端功能性运动品牌
2016/09/05 全球购物
跟单文员岗位职责
2014/01/03 职场文书
2014副局长群众路线对照检查材料思想汇报
2014/09/22 职场文书
群众路线党员个人剖析材料
2014/10/08 职场文书
学生违纪检讨书200字
2014/10/21 职场文书
施工安全保证书
2015/05/09 职场文书
idea编译器vue缩进报错问题场景分析
2021/07/04 Vue.js
Nginx内网单机反向代理的实现
2021/11/07 Servers
vue项目proxyTable配置和部署服务器
2022/04/14 Vue.js