确保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 相关文章推荐
ZF等常用php框架中存在的问题
Jan 10 PHP
PHP print类函数使用总结
Jun 25 PHP
PHP输出数组中重名的元素的几种处理方法
Sep 05 PHP
php初始化对象和析构函数的简单实例
Mar 11 PHP
开启PHP Static 关键字之旅模式
Nov 13 PHP
PHP魔术方法使用方法汇总
Feb 14 PHP
PHP微信API接口类
Aug 22 PHP
thinkPHP中钩子的两种配置调用方法详解
Nov 11 PHP
PHP与jquery实时显示网站在线人数实例详解
Dec 02 PHP
thinkPHP框架中执行事务的方法示例
May 31 PHP
Laravel向公共模板赋值方法总结
Jun 25 PHP
解决laravel中日志权限莫名变成了root的问题
Oct 17 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
laravel 时间格式转时间戳的例子
2019/10/11 PHP
JavaScript String.replace函数参数实例说明
2013/06/06 Javascript
Js放到HTML文件中的哪个位置有什么区别
2013/08/21 Javascript
jquery选择器、属性设置用法经验总结
2013/09/08 Javascript
使用CSS和jQuery模拟select并附提交后取得数据的代码
2013/10/18 Javascript
js获取事件源及触发该事件的对象
2013/10/24 Javascript
Array栈方法和队列方法的特点说明
2014/01/24 Javascript
在JavaScript中构建ArrayList示例代码
2014/09/17 Javascript
Listloading.js移动端上拉下拉刷新组件
2016/08/04 Javascript
JS 事件绑定、事件监听、事件委托详细介绍
2016/09/28 Javascript
js常用的继承--组合式继承
2017/03/06 Javascript
详解Node.js中exports和module.exports的区别
2017/04/19 Javascript
详解vue中使用express+fetch获取本地json文件
2017/10/10 Javascript
ES6 Promise对象的含义和基本用法分析
2019/06/14 Javascript
微信小程序关键字变色实现代码实例
2019/12/13 Javascript
vue实现五子棋游戏
2020/05/28 Javascript
vant-ui组件调用Dialog弹窗异步关闭操作
2020/11/04 Javascript
vue在图片上传的时候压缩图片
2020/11/18 Vue.js
linux系统使用python获取cpu信息脚本分享
2014/01/15 Python
在Python的Django框架中加载模版的方法
2015/07/16 Python
Pycharm设置界面全黑的方法
2018/05/23 Python
Django文件存储 自己定制存储系统解析
2019/08/02 Python
Python实现i人事自动打卡的示例代码
2020/01/09 Python
django创建css文件夹的具体方法
2020/07/31 Python
python实现canny边缘检测
2020/09/14 Python
python中numpy.empty()函数实例讲解
2021/02/05 Python
机械专业毕业生自荐信
2013/11/02 职场文书
歌唱比赛获奖感言
2014/01/21 职场文书
岗位职责的构建方法
2014/02/01 职场文书
制作部班长职位说明书
2014/02/26 职场文书
2014年基层党建工作总结
2014/11/11 职场文书
委托书英文
2015/01/28 职场文书
企业反腐倡廉心得体会
2015/08/15 职场文书
Java无向树分析 实现最小高度树
2022/04/09 Javascript
nginx实现多geoserver服务的负载均衡
2022/05/15 Servers
教你使用Ubuntu搭建DNS服务器
2022/09/23 Servers