"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > ما الذي يسبب رمز الحالة 419 في Laravel لطرق POST وPUT؟

ما الذي يسبب رمز الحالة 419 في Laravel لطرق POST وPUT؟

تم النشر بتاريخ 2024-11-06
تصفح:119

What Causes the 419 Status Code in Laravel for POST and PUT Methods?

فهم رمز الحالة 419 لطرق POST وPUT في Laravel API

عند تطوير واجهة برمجة تطبيقات RESTful باستخدام Laravel، من الشائع مواجهة 419 رمز الحالة لطرق POST وPUT. يحدث هذا الخطأ بسبب عملية التحقق من رمز CSRF المميز في Laravel.

في Laravel 5.4 والإصدارات السابقة، يتم تمكين رموز CSRF المميزة لجميع الطلبات، بما في ذلك أساليب POST وPUT. وذلك لحماية التطبيق من هجمات تزوير الطلبات عبر المواقع (CSRF). افتراضيًا، تُضاف رموز CSRF المميزة إلى العرض كحقول مخفية داخل النماذج.

عند إرسال طلب POST أو PUT، تتوقع Laravel تلقي رمز CSRF صالحًا مع بيانات الطلب. إذا لم يتم العثور على رمز مميز صالح، فسيقوم Laravel بإنشاء استثناء "419 CSRF token notmatch" ويعيد استجابة رمز الحالة 419.

استبعاد المسارات من حماية CSRF

إلى لحل هذه المشكلة، يمكنك استبعاد مسارات معينة من التحقق من رمز CSRF. في Laravel 5.5 والإصدارات الأحدث، يمكنك استخدام ملف api.php بدلاً من web.php لمسارات واجهة برمجة التطبيقات، ولا يتم تمكين التحقق من CSRF افتراضيًا.

إذا كنت تستخدم web.php لمسارات واجهة برمجة التطبيقات، فيمكنك يمكن استبعادهم من التحقق من رمز CSRF عن طريق إضافة معرفات URI الخاصة بهم إلى خاصية $except الخاصة بالبرنامج الوسيط VerifyCsrfToken. على سبيل المثال:

namespace App\Http\Middleware;

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

class VerifyCsrfToken extends BaseVerifier
{
    protected $except = [
        '/api/*',
    ];
}

سيؤدي هذا إلى استبعاد جميع المسارات التي تبدأ بـ /api من التحقق من رمز CSRF.

الحل البديل للمسارات غير API

في حالة استبعاد المسارات من حماية CSRF ليست مناسبة، يمكنك تعطيل التحقق من CSRF لطرق محددة داخل مجموعة المسار. على سبيل المثال:

Route::group(['middleware' => 'web'], function () {
    Route::post('/my-route', 'MyController@store')->withoutMiddleware('verify-csrf-token');
});
سيؤدي هذا إلى تعطيل التحقق من رمز CSRF لطلب POST إلى /my-route.

بيان الافراج أعيد طبع هذه المقالة على: 1729254976 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3