确保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学习之 认清变量的作用范围
Jan 26 PHP
php列出一个目录下的所有文件的代码
Oct 09 PHP
AJAX的跨域访问-两种有效的解决方法介绍
Jun 22 PHP
memcache命令启动参数中文解释
Jan 13 PHP
php通过array_unshift函数添加多个变量到数组前端的方法
Mar 18 PHP
深入讲解PHP的Yii框架中的属性(Property)
Mar 18 PHP
Yii2实现同时搜索多个字段的方法
Aug 10 PHP
使用正则去除php代码中的注释方法
Nov 03 PHP
php导出csv文件,可导出前导0实例代码
Nov 16 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
Jan 17 PHP
PHP实现防止表单重复提交功能【基于token验证】
May 24 PHP
PHP使用HTML5 FormData对象提交表单操作示例
Jul 02 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获取某个目录大小的代码
2008/09/10 PHP
php禁用cookie后session设置方法分析
2016/10/19 PHP
PHP从零开始打造自己的MVC框架之入口文件实现方法详解
2019/06/03 PHP
浅谈PHP之ThinkPHP框架使用详解
2020/07/21 PHP
js对象的比较
2011/02/26 Javascript
鼠标滚轮改变图片大小的示例代码
2013/11/20 Javascript
页面元素绑定jquery toggle后元素隐藏的解决方法
2014/03/27 Javascript
JsRender for index循环索引用法详解
2014/10/31 Javascript
JavaScript中反正弦函数Math.asin()的使用简介
2015/06/14 Javascript
分享五个有用的jquery小技巧
2015/10/08 Javascript
jQuery同步提交示例代码
2015/12/12 Javascript
JavaScript_ECMA5数组新特性详解
2016/06/12 Javascript
关于backbone url请求中参数带有中文存入数据库是乱码的快速解决办法
2016/06/13 Javascript
利用jquery实现下拉框的禁用与启用
2016/12/07 Javascript
Angular.js去除页面中显示的空行方法示例
2017/03/30 Javascript
JavaScript数据类型的存储方法详解
2017/08/25 Javascript
Vue Element 分组+多选+可搜索Select选择器实现示例
2018/07/23 Javascript
Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验
2019/04/22 Javascript
vue中注册自定义的全局js方法
2019/11/15 Javascript
如何基于filter实现网站整体变灰功能
2020/04/17 Javascript
[02:41]DOTA2英雄基础教程 亚巴顿
2014/01/02 DOTA
python实现斐波那契递归函数的方法
2014/09/08 Python
selenium + python 获取table数据的示例讲解
2018/10/13 Python
Python读写文件基础知识点
2019/06/10 Python
python对象销毁实例(垃圾回收)
2020/01/16 Python
Python参数传递对象的引用原理解析
2020/05/22 Python
python filecmp.dircmp实现递归比对两个目录的方法
2020/05/22 Python
Python下使用Trackbar实现绘图板
2020/10/27 Python
医学生自我鉴定范文
2014/03/26 职场文书
财务负责人任命书
2014/06/06 职场文书
店面出租协议书范本
2014/11/28 职场文书
瞿秋白纪念馆观后感
2015/06/10 职场文书
课程设计感想范文
2015/08/11 职场文书
毕业生自荐求职信书写的技巧
2019/08/26 职场文书
django学习之ajax post传参的2种格式实例
2021/05/14 Python
Linux中sftp常用命令整理
2022/06/28 Servers