PHP - Laravel CSRF 介绍与用法(及取消 CSRF 验证)

简介: PHP - Laravel CSRF 介绍与用法(及取消 CSRF 验证)

一、什么是 CSRF

`CSRF (Cross-site request forgery)`, 中文名称:`跨站请求伪造`。
跨站请求攻击,简单地说,是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并执行一些操作(如发邮件,发消息,甚至财产操作如转账和购买商品)。
由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去执行。
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/b463eb88792d4b0a9676ffcd8a040a09~tplv-k3u1fbpfcp-watermark.image)

二、Laravel 框架如何处理 CSRF

例如:通过另外一台未授权服务器访问我们的服务器,如果是恶意攻击会很尴尬,所以可以通过去服务器获取页面回来的时候,附带一个令牌,前端显示页面之后,有访问操作的时候需要将令牌带回服务器验证比较。
  • 重点:Laravel 框架如何处理 CSRF
    定义在 routes/web.php 文件中的路由,默认就有 CSRF 验证功能
    定义在 routes/api.php 文件中的路由,默认没有 CSRF 验证功能
  • CSRF 什么时候用?什么时候不用?
    前端页面路由需要用 CSRF,接口路由不能使用 CSRF

三、Laravel 框架如何排除指定路由不进行 CSRF 验证

  • 并不是所有请求都需要避免 CSRF 攻击,比如去第三方 API 获取数据的请求。
  • 可以通过在 VerifyCsrfToken(app/Http/Middleware/ VerifyCsrfToken.php)中间件中将要排除的请求 URL 添加到 $except 属性数组中。

<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;
class VerifyCsrfToken extends Middleware
{
    /**
     * Indicates whether the XSRF-TOKEN cookie should be set on the response.
     *
     * @var bool
     */
    protected $addHttpCookie = true;
    /**
     * The URIs that should be excluded from CSRF verification.
     *
     * @var array
     */
    protected $except = [
        // 把想排除的路由规则卸载此数组中
        // 把该路由的规则不进行 CSRF 验证
        '/alipay'
    ];
}
相关文章
|
8月前
|
PHP
PHP - Laravel 表单验证错误切换为中文
PHP - Laravel 表单验证错误切换为中文
115 0
|
8月前
|
JavaScript 前端开发 PHP
PHP - Laravel 视图模板(blade.php) @ 原始形态输出(Vue 与 PHP 混编)
PHP - Laravel 视图模板(blade.php) @ 原始形态输出(Vue 与 PHP 混编)
95 0
|
3月前
|
安全 Linux 测试技术
PHP环境配置和验证
PHP环境配置和验证
31 0
|
8月前
|
前端开发 JavaScript 机器人
用PHP实现了一个极验验证功能,如何做?具体代码如何写?
极验验证是一种防机器人的验证机制,可以通过图像识别等方式来判断用户是否为真实用户。
91 1
|
8月前
|
安全 PHP
PHP - Laravel 表单验证(验证规则与使用 $this->validate()、Validator::make()、Requests)
PHP - Laravel 表单验证(验证规则与使用 $this->validate()、Validator::make()、Requests)
153 0
|
8月前
|
PHP
PHP - Laravel Blade模板注释 {{-- 注释 --}} 与 <!-- 注释 --> 的区别
PHP - Laravel Blade模板注释 {{-- 注释 --}} 与 <!-- 注释 --> 的区别
63 0
|
4月前
|
PHP 数据库
【PHP学习】—PHP连接数据库实现表单页面的验证功能(七)
【PHP学习】—PHP连接数据库实现表单页面的验证功能(七)
|
6月前
|
监控 安全 BI
一套医疗安全不良事件管理系统源码(PHP+ vue2+element+ laravel)
不良事件报告管理系统按照不良事件的管理部门不同,分为医疗不良事件、护理不良事件、药品不良反应事件、院内感染事件、输血不良反应事件、医疗器械不良事件、医技相关不良事件、安保后勤不良事件、信息不良事件、费用窗口服务不良事件共10大类事件。
一套医疗安全不良事件管理系统源码(PHP+ vue2+element+ laravel)
|
6月前
|
前端开发 JavaScript API
php的短信验证的流程,如何实现前端js加后端php
php的短信验证的流程,如何实现前端js加后端php
|
7月前
|
存储 安全 BI
不良事件管理系统源码,PHP+ vue2+element+ laravel
不良事件上报系统通过 “事前的人员知识培训管理和制度落地促进”、“事中的事件上报和跟进处理”、 以及 “事后的原因分析和工作持续优化”,结合预存上百套已正在使用的模板,帮助医院从对护理事件、药品事件、医疗器械事件、医院感染事件、输血事件、意外事件、职业暴露事件、后勤保障事件、信息安全事件、消防事件、工程事件、质量安全事件等各类不良事件进行管理的软件。 不良事件管理的核心环节在于事件的系统化统计分析,查找根本原因,从而进行改进,因此对不良事件报告系统的统计功能要求较高,并导入现代化的质量管理工具进行科学化分析。事件的统计分析包括系统汇总保存的报告数据,根据系统提供的统计功能,可以方便作出统计报