确保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的数据库抽象层函数库
Oct 09 PHP
php 将bmp图片转为jpg等其他任意格式的图片
Jun 29 PHP
php 获取一个月第一天与最后一天的代码
May 16 PHP
记录mysql性能查询过程的使用方法
May 02 PHP
php导入csv文件碰到乱码问题的解决方法
Feb 10 PHP
php中simplexml_load_file函数用法实例
Nov 12 PHP
php使用Session和文件统计在线人数
Jul 04 PHP
php 中奖概率算法实现代码
Jan 25 PHP
php中Ioc(控制反转)和Di(依赖注入)
May 07 PHP
Laravel事件监听器用法实例分析
Mar 12 PHP
laravel框架中视图的基本使用方法分析
Nov 23 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
Mar 30 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实现过滤掉非汉字字符只保留中文字符
2015/06/04 PHP
全面解读PHP的Yii框架中的日志功能
2016/03/17 PHP
laravel 实现划分admin和home 模块分组
2019/10/15 PHP
些很实用且必用的小脚本代码
2006/06/26 Javascript
javascript prototype,executing,context,closure
2008/12/24 Javascript
关于数据与后端进行交流匹配(点亮星星)
2016/08/03 Javascript
AngularJs expression详解及简单示例
2016/09/01 Javascript
js学习笔记之事件处理模型
2016/10/31 Javascript
ionic开发中点击input时键盘自动弹出
2016/12/23 Javascript
angular中的http拦截器Interceptors的实现
2017/02/21 Javascript
p5.js实现斐波那契螺旋的示例代码
2018/03/22 Javascript
解决webpack多页面内存溢出的方法示例
2019/10/08 Javascript
微信小程序可滑动周日历组件使用详解
2019/10/21 Javascript
十分钟教你上手ES2020新特性
2020/02/12 Javascript
uniapp 仿微信的右边下拉选择弹出框的实现代码
2020/07/12 Javascript
[03:11]完美世界DOTA2联赛PWL DAY8集锦
2020/11/09 DOTA
python格式化字符串实例总结
2014/09/28 Python
Python中使用Beautiful Soup库的超详细教程
2015/04/30 Python
Python 利用scrapy爬虫通过短短50行代码下载整站短视频
2018/10/29 Python
在Python运行时动态查看进程内部信息的方法
2019/02/22 Python
计算机二级python学习教程(1) 教大家如何学习python
2019/05/16 Python
Python算法的时间复杂度和空间复杂度(实例解析)
2019/11/19 Python
python交互模式基础知识点学习
2020/06/18 Python
python super()函数的基本使用
2020/09/10 Python
有关HTML5 Video对象的ontimeupdate事件(Chrome上无效)的问题
2013/07/19 HTML / CSS
老海军美国官网:Old Navy
2016/09/05 全球购物
外贸销售员求职的自我评价
2013/11/23 职场文书
小车司机岗位职责
2013/11/25 职场文书
公司仓管员岗位职责
2015/04/01 职场文书
2015元旦感言
2015/12/09 职场文书
2016中秋晚会开幕词
2016/03/03 职场文书
PHP实现考试倒计时功能代码
2021/04/16 PHP
python字符串常规操作大全
2021/05/02 Python
如何将numpy二维数组中的np.nan值替换为指定的值
2021/05/14 Python
python tkinter Entry控件的焦点移动操作
2021/05/22 Python
Java elasticsearch安装以及部署教程
2021/06/28 Java/Android