انتقل إلى محتوى الدرس

CSRF Tokens in Asynchronous Requests إرسال رمز الحماية بطلبات AJAX

تأمين نماذج HTML ضد هجمات تزوير الطلبات عبر توجيه @csrf ومحاكاة طرق التحديث والحذف عبر توجيه @method وفق أحدث معايير إطار العمل Laravel 12 مع أمثلة وتطبيقات عملية متدرجة.
1 صفوف تعليمية
إطار العمل Laravel
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

عند إرسال طلبات غير متزامنة عبر Fetch API بدلاً من نماذج HTML، يمكنك وضع قيمة csrf_token داخل وسم meta في رأس القالب وإرسالها ضمن رأس الطلب X-CSRF-TOKEN. كما تقوم مكتبة Axios تلقائياً بقراءة كوكي XSRF-TOKEN وإرساله في رأس X-XSRF-TOKEN دون إعداد يدوي.

  • تخزين الرمز في وسم meta (csrf-token Meta): يوضع في رأس التخطيط الرئيسي لتسهيل قراءته من كود JavaScript.
  • رأس الطلب (X-CSRF-TOKEN): تقبل برمجية التحقق في Laravel الرمز السري الممرر في هذا الرأس تماماً كالحقل المخفي.
  • التكامل التلقائي مع Axios (X-XSRF-TOKEN): يرسل Laravel كوكي خاصاً تقرأه مكتبة Axios وترفقه مع كل طلب تلقائياً.
PHP
<meta name="csrf-token" content="{{ csrf_token() }}">
<script>
const token = document.head.dataset.csrfToken;
fetch('/cart/items', {
    method: 'POST',
    headers: { 'X-CSRF-TOKEN': token }
});
</script>