ホームページ >バックエンド開発 >PHPチュートリアル >CSRF保護によるLaravelのPOSTおよびPUTメソッドの419ステータスコードを解決する方法は?
Laravel を使用して RESTful API を開発しようとすると、POST および PUT メソッドで 419 ステータス コードが発生する可能性があります。方法。この問題は、クロスサイト リクエスト フォージェリ (CSRF) 攻撃を防ぐことを目的とした Laravel の CSRF 保護に起因します。
Laravel の web.php ルートは、デフォルトで CSRF トークンによって保護されています。 CSRF トークンは、リクエストが悪意のあるユーザーからのものではなく、正当なソースからのものであることを確認する方法です。 POST または PUT リクエストに正しい CSRF トークンが含まれていない場合、Laravel は 419 ステータス コードを返します。
API に web.php ルートを使用している場合エンドポイントがある場合は、VerifyCsrfToken ミドルウェアの $excel プロパティにエンドポイントを追加することで、CSRF 保護から除外できます。
<code class="php">namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier; class VerifyCsrfToken extends BaseVerifier { /** * The URIs that should be excluded from CSRF verification. * * @var array */ protected $except = [ 'api/*', // Exclude all API routes from CSRF protection ]; }</code>
Laravel バージョン 5.4 以降を使用する場合は、API ルートに api.php ファイルを使用することをお勧めします。 api.php で定義されたルートは、CSRF 保護から自動的に除外されます。
ルート グループ内の特定のメソッドに対して CSRF 保護を無効にできます。
<code class="php">Route::group(['middleware' => ['api', 'without_csrf_token']], function () { Route::post('/store', 'RestController@store'); Route::put('/update/{id}', 'RestController@update'); });</code>
ルートを CSRF 保護から除外するか、特定のメソッドに対して無効にすることで、419 ステータス コードの問題を解決できます。 CSRF 保護は、ユーザーが送信したフォームに対する重要なセキュリティ対策であるため、必要な場合にのみ無効にしてください。
以上がCSRF保護によるLaravelのPOSTおよびPUTメソッドの419ステータスコードを解決する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。