首頁 >後端開發 >php教程 >如何解決 Laravel 中 POST 和 PUT 方法因 CSRF 保護而出現的 419 狀態碼?

如何解決 Laravel 中 POST 和 PUT 方法因 CSRF 保護而出現的 419 狀態碼?

Linda Hamilton
Linda Hamilton原創
2024-10-18 20:35:311037瀏覽

How to Resolve 419 Status Code for POST and PUT Methods in Laravel Due to CSRF Protection?

Laravel API 在POST 和PUT 方法上傳回419 狀態碼

嘗試使用Laravel 開發RESTful API 時,您可能會在POST 和PUT 上遇到419 狀態程式碼方法。此問題源自於 Laravel 的 CSRF 保護,旨在防止跨站請求偽造 (CSRF) 攻擊。

根本原因

Laravel 的 web.php 路由預設受 CSRF 令牌保護。 CSRF 令牌是一種確保請求來自合法來源而不是來自惡意使用者的方法。當 POST 或 PUT 請求不包含正確的 CSRF 令牌時,Laravel 傳回 419 狀態碼。

解決方案1:從CSRF 保護中排除路由

如果您使用web.php 路由作為API端點,您可以透過將它們新增至VerifyCsrfToken中間件的$ except屬性中將它們排除在CSRF保護之外。

解決方案2:使用api.php作為API路由

如果您是使用 Laravel 5.4 或更高版本,建議使用 api.php 檔案作為 API 路由。 api.php 中定義的路由會自動排除在 CSRF 保護之外。

解決方案 3:對特定方法停用 CSRF 保護

您可以對路由組內的特定方法停用 CSRF 保護。

結論

透過從 CSRF 保護中排除路由或針對特定方法禁用它,可以解決 419 狀態碼問題。請記住僅在必要時停用 CSRF 保護,因為它是使用者提交表單的重要安全措施。

以上是如何解決 Laravel 中 POST 和 PUT 方法因 CSRF 保護而出現的 419 狀態碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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