首頁 >後端開發 >php教程 >何時以及如何處理 Laravel POST 和 PUT 請求中的 419 狀態代碼?

何時以及如何處理 Laravel POST 和 PUT 請求中的 419 狀態代碼?

DDD
DDD原創
2024-10-18 20:33:30994瀏覽

When and How to Handle the 419 Status Code in Laravel POST and PUT Requests?

了解Laravel API 中POST 與PUT 方法的419 狀態碼

使用Laravel 開發RESTful API 時,常會遇到419發出POST或PUT 請求時的狀態代碼。此狀態代碼表示請求由於缺少有效的 CSRF 令牌而被拒絕。

根本原因

預設情況下,Laravel 使用 CSRF 令牌來防止交叉- 站點請求偽造(CSRF)攻擊。當使用 Web 中間件群組進行 API 路由時,會啟用 CSRF 驗證,並且任何修改應用程式狀態的請求(例如 POST 或 PUT)都需要有效的令牌。

對於非Web -基於API

如果您正在開發不適合從Web 瀏覽器使用的API(例如行動應用程式或命令列工具),則不需要CSRF 保護,因為這些環境通常不易受到CSRF 攻擊。

要停用非基於 Web 的 API 的 CSRF 驗證,您可以將 API 路由移至 paths/web.php 檔案中的 Web 中介軟體群組之外,或使用 api.php檔案取代。在 api.php 中,CSRF 驗證會自動停用。

對於基於Web 的API

如果您正在開發將從Web 瀏覽器存取的API,您可能希望避免將整個API 路由組排除在CSRF 驗證之外。相反,您可以選擇性地排除您知道不會受到 CSRF 攻擊的特定路由。

為此,請將這些路由加入VerifyCsrfToken 中間件中的$ except 陣列中:

<code class="php">namespace App\Http\Middleware;

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

class VerifyCsrfToken extends BaseVerifier
{
    protected $except = [
        '/api/stripe/*',
        '/api/non-susceptible-route',
    ];
}</code>

這種方法允許您為大多數API 路由維持CSRF 保護,同時免除不太可能成為CSRF 攻擊目標的特定路由。

以上是何時以及如何處理 Laravel POST 和 PUT 請求中的 419 狀態代碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn