Laravel 5.5 CSRF
阿新 • • 發佈:2018-11-30
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') } });