Laravel 5.4 官方文档摘记:CSRF保护

CSRF保护

简介

前面说过,要在所有提交给Laravel的form表单中加入{{csrf_field()}}标签,这个模板会渲染出一个令牌,来防止CSRF攻击。

这里解释一下为什么一定要加入该标签。在app\Http\Kernel.php(kernel : 核心),设置的全局中间件之一:

\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class

会对提交过来的表单进行上述令牌的验证,其他中间件的作用以后遇到再说。

解除CSRF保护

文档上的那个例子我是没有看懂,但是我看懂了怎么解除该保护,那就是把你不需要验证的路由设置在上述中间件文件中:

<?php

namespace App\Http\Middleware;

use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;

class VerifyCsrfToken extends BaseVerifier
{
    /**
     * The URIs that should be excluded from CSRF verification.
     * 翻译一下就是下面的URL地址是被排除在CSRF保护之外的
     * @var array
     */
    protected $except = [
        //这里就是举个例子
        'users/store'    
    ];
}

X-CSRF-Token

这个东西是什么我也不知道,但是知道怎么用。

  1. 在HTML页面的meta中使用{{csrf_token()}} 进行渲染
  2. 如果直接form表单提交的话那么就没关系,如果是Ajax进行提交的话,需要将下面的内容一起提交给后台。
$.ajaxSetUp({
    headers:{
        'X-CSRF-TOKEN':$("meta[name='csrf-token']").attr('content')
    }
});

这一段纯Jquery代码就不解释了。

5.4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值