PHPLaravelCSRF介紹與用法(及取消CSRF驗證)

NO IMAGE

一、什麼是 CSRF

`CSRF (Cross-site request forgery)`, 中文名稱:`跨站請求偽造`。
跨站請求攻擊,簡單地說,是攻擊者通過一些技術手段欺騙用戶的瀏覽器去訪問一個自己曾經認證過的網站並執行一些操作(如發郵件,發消息,甚至財產操作如轉賬和購買商品)。
由於瀏覽器曾經認證過,所以被訪問的網站會認為是真正的用戶操作而去執行。
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/b463eb88792d4b0a9676ffcd8a040a09~tplv-k3u1fbpfcp-watermark.image)

二、Laravel 框架如何處理 CSRF

PHPLaravelCSRF介紹與用法(及取消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 屬性數組中。

PHPLaravelCSRF介紹與用法(及取消CSRF驗證)

<?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'
];
}

相關文章

Dart點將臺|package包相關知識

Vue包大小優化從1.72M到94K

Vite2.0版本發佈,都有哪些新特性

我知道的React一些原理