确保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
Oct 09 PHP
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
Apr 25 PHP
php判断变量类型常用方法
Apr 24 PHP
在wamp集成环境下升级php版本(实现方法)
Jul 01 PHP
从零开始学YII2框架(三)扩展插件yii2-gird
Aug 20 PHP
php提交post数组参数实例分析
Dec 17 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
Dec 22 PHP
php中关于长度计算容易混淆的问题分析
May 27 PHP
PHP实现的激活用户注册验证邮箱功能示例
Jun 06 PHP
PHP利用Cookie设置用户30分钟未操作自动退出功能
Jul 03 PHP
laravel 解决强制跳转 https的问题
Oct 22 PHP
php实现商城购物车的思路和源码分析
Jul 23 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编程注意事项的小结
2013/04/27 PHP
基于php 随机数的深入理解
2013/06/05 PHP
javascript some()函数用法详解
2014/11/13 PHP
在win系统安装配置 Memcached for PHP 5.3 图文教程
2015/03/03 PHP
linux平台编译安装PHP7并安装Redis扩展与Swoole扩展实例教程
2016/09/30 PHP
[原创]静态页面也可以实现预览 列表不同的显示方式
2006/10/14 Javascript
javascript hasFocus使用实例
2010/06/29 Javascript
DB.ASP 用Javascript写ASP很灵活很好用很easy
2011/07/31 Javascript
js中页面的重新加载(当前页面/上级页面)及frame或iframe元素引用介绍
2013/01/24 Javascript
checkbox使用示例
2013/08/23 Javascript
Bootstrap的基本应用要点浅析
2016/12/19 Javascript
浅谈在fetch方法中添加header后遇到的预检请求问题
2017/08/31 Javascript
vue2.0结合Element-ui实战案例
2019/03/06 Javascript
微信小程序下拉菜单效果的实例代码
2019/05/14 Javascript
js实现简单掷骰子效果
2019/10/24 Javascript
[04:10]DOTA2英雄梦之声_第11期_圣堂刺客
2014/06/21 DOTA
[01:42]辉夜杯战队访谈宣传片—FANTUAN
2015/12/25 DOTA
[39:52]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第一场
2018/04/04 DOTA
Python实现查找匹配项作处理后再替换回去的方法
2017/06/10 Python
python基于twisted框架编写简单聊天室
2018/01/02 Python
Python设计模式之观察者模式简单示例
2018/01/10 Python
详解Python3的TFTP文件传输
2018/06/26 Python
Python使用win32com模块实现数据库表结构自动生成word表格的方法
2018/07/17 Python
详解程序意外中断自动重启shell脚本(以Python为例)
2019/07/26 Python
python虚拟环境的安装和配置(virtualenv,virtualenvwrapper)
2019/08/09 Python
python 6.7 编写printTable()函数表格打印(完整代码)
2020/03/25 Python
python制作一个简单的gui 数据库查询界面
2020/11/19 Python
H5 canvas中width、height和style的宽高区别详解
2018/11/02 HTML / CSS
多视角3D逼真HTML5水波动画
2016/03/03 HTML / CSS
什么是View State?
2013/01/27 面试题
生日寄语大全
2014/04/08 职场文书
协议书模板
2014/04/23 职场文书
酒店端午节活动方案
2014/08/26 职场文书
化工实习心得体会
2014/09/09 职场文书
电力培训学习心得体会
2016/01/11 职场文书
OpenCV-Python实现轮廓的特征值
2021/06/09 Python