确保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脚本的10个技巧(1)
Oct 09 PHP
php设计模式 Mediator (中介者模式)
Jun 26 PHP
PHP学习笔记之数组篇
Jun 28 PHP
php curl 伪造IP来源的实例代码
Nov 01 PHP
php数组随机排序实现方法
Jun 13 PHP
WordPress中创建用户角色的相关PHP函数使用详解
Dec 25 PHP
thinkphp命名空间用法实例详解
Dec 30 PHP
CodeIgniter配置之autoload.php自动加载用法分析
Jan 20 PHP
php与c 实现按行读取文件实例代码
Jan 03 PHP
Laravel框架中自定义模板指令总结
Dec 17 PHP
PHP的PDO预定义常量讲解
Jan 24 PHP
PHP 实现 JSON 数据的编码和解码操作详解
Apr 22 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
摩卡咖啡
2021/03/03 咖啡文化
PHP5 安装方法
2006/10/09 PHP
PHP 日期时间函数的高级应用技巧
2009/10/10 PHP
PHP中全局变量global和$GLOBALS[]的区别分析
2012/08/06 PHP
PHP+Memcache实现wordpress访问总数统计(非插件)
2014/07/04 PHP
Yii框架实现记录日志到自定义文件的方法
2017/05/23 PHP
PHPMailer ThinkPHP实现自动发送邮件功能
2018/06/10 PHP
PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例
2019/05/30 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
插件:检测javascript的内存泄漏
2007/03/04 Javascript
JavaScript入门教程(3) js面向对象
2009/01/31 Javascript
javascript 通用简单的table选项卡实现
2010/05/07 Javascript
JS动态添加option和删除option(附实例代码)
2013/04/01 Javascript
Select标签下拉列表二级联动级联实例代码
2014/02/07 Javascript
8个超实用的jQuery功能代码分享
2015/01/08 Javascript
详解JavaScript正则表达式之RegExp对象
2015/12/13 Javascript
轻松实现Bootstrap图片轮播
2020/04/20 Javascript
canvas实现简易的圆环进度条效果
2017/02/28 Javascript
jQuery输入框密码的显示隐藏【代码分享】
2017/04/29 jQuery
全面解析jQuery中的$(window)与$(document)的用法区别
2017/08/15 jQuery
layui实现点击按钮给table添加一行
2018/08/10 Javascript
vue单页缓存方案分析及实现
2018/09/25 Javascript
JavaScript组合模式---引入案例分析
2020/05/23 Javascript
总结python爬虫抓站的实用技巧
2016/08/09 Python
Python给图像添加噪声具体操作
2019/03/03 Python
python+selenium+chromedriver实现爬虫示例代码
2020/04/10 Python
Python中如何添加自定义模块
2020/06/09 Python
python实现扫雷游戏的示例
2020/10/20 Python
linux面试相关问题
2012/08/11 面试题
试用期转正鉴定评语
2014/01/27 职场文书
卖车协议书
2014/04/21 职场文书
重阳节活动总结
2014/08/27 职场文书
首都博物馆观后感
2015/06/05 职场文书
嘉年华活动新闻稿
2015/07/17 职场文书
2015年工商局个人工作总结
2015/07/23 职场文书
基于Python实现的购物商城管理系统
2021/04/27 Python