CSRF
// CSRF(跨站请求伪造)是一种通过伪装授权用户的请求来攻击授信网站的恶意漏洞。
{{ csrf_field() }}
<input type="hidden" name="_token" value="{{ csrf_token() }}">
{{ method_field('PUT') }}
<input type="hidden" name="_method" value="PUT">
// 排除指定 URL 不做 CSRF 安全校验
某些路由可能不需要经过csrf验证,例如,如果你使用了第三方支付系统(如支付宝或微信支付)来处理支付并用到他们提供的回调功能,这时候就需要从 Laravel 的 CSRF 保护中间件中排除回调处理器路由,因为第三方支付系统并不知道要传什么 token 值给我们定义的路由。取消的方法是在 app/Http/Middleware/VerifyCsrfToken 中的$except 添加这些路由
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;
class VerifyCsrfToken extends Middleware
{
/**
* 从 CSRF 验证中排除的 URL
*
* @var array
*/
protected $except = [
'alipay/*',
];
}
// X-CSRF-Token
<meta name="csrf-token" content="{{ csrf_token() }}">
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});