确保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&amp;&amp;mysql)三
Oct 09 PHP
PHP实现域名whois查询的代码(数据源万网、新网)
Feb 22 PHP
简单的php数据库操作类代码(增,删,改,查)
Apr 08 PHP
基于ubuntu下nginx+php+mysql安装配置的具体操作步骤
Apr 28 PHP
php获取汉字首字母的函数
Nov 07 PHP
Linux下PHP安装mcrypt扩展模块笔记
Sep 10 PHP
PHP使用xpath解析XML的方法详解
May 20 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
Aug 28 PHP
laravel多条件查询方法(and,or嵌套查询)
Oct 09 PHP
Laravel 6.2 中添加了可调用容器对象的方法
Oct 22 PHP
Laravel 集成微信用户登录和绑定的实现
Dec 27 PHP
PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】
Apr 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桌面中心(二) 数据库写入
2007/03/11 PHP
php时间不正确的解决方法
2008/04/09 PHP
PHP ADODB实现事务处理功能示例
2018/05/25 PHP
Auntion-TableSort国人写的一个javascript表格排序的东西
2007/11/12 Javascript
Div Select挡住的解决办法
2008/08/07 Javascript
JS声明变量背后的编译原理剖析
2012/12/28 Javascript
javascript实现table表格隔行变色的方法
2015/05/13 Javascript
JS声明对象时属性名加引号与不加引号的问题及解决方法
2018/02/16 Javascript
vue.js中使用echarts实现数据动态刷新功能
2019/04/16 Javascript
js实现转动骰子模型
2019/10/24 Javascript
JavaScript 链表定义与使用方法示例
2020/04/28 Javascript
vue 数据遍历筛选 过滤 排序的应用操作
2020/11/17 Javascript
Python深入学习之上下文管理器
2014/08/31 Python
初步探究Python程序的执行原理
2015/04/11 Python
Python贪心算法实例小结
2018/04/22 Python
python创建文件备份的脚本
2018/09/11 Python
完美解决python3.7 pip升级 拒绝访问问题
2019/07/12 Python
解决torch.autograd.backward中的参数问题
2020/01/07 Python
你可能不知道的Python 技巧小结
2020/01/29 Python
Python任务自动化工具tox使用教程
2020/03/17 Python
Django 解决新建表删除后无法重新创建等问题
2020/05/21 Python
使用pycharm和pylint检查python代码规范操作
2020/06/09 Python
html5 touch事件实现触屏页面上下滑动(二)
2016/03/10 HTML / CSS
DVF官方网站:美国时装界尊尚品牌
2017/08/29 全球购物
澳大利亚最超值的自行车之家:Reid Cycles
2019/03/24 全球购物
在c#中using和new这两个关键字有什么意义
2013/05/19 面试题
技术学校毕业生求职信分享
2013/12/02 职场文书
2014年大学庆元旦迎新年活动方案
2014/03/09 职场文书
网络文明传播志愿者活动方案
2014/08/20 职场文书
国企干部对照检查材料
2014/08/22 职场文书
关于教师节的广播稿
2014/09/10 职场文书
党员先进性教育整改措施
2014/09/18 职场文书
出纳工作检讨书
2014/10/18 职场文书
2014司机年终工作总结
2014/12/05 职场文书
2015年酒店工作总结范文
2015/04/07 职场文书
煤矿施工安全协议书
2016/03/22 职场文书