0Pricing
Cyber Security Academy · درس

تزوير الطلبات عبر المواقع (CSRF)

تعلّم كيفية تزوير هجمات CSRF للطلبات الموثّقة، وكيف تدافع رموز CSRF وملفات تعريف الارتباط SameSite ضدها

تزوير الطلبات عبر المواقع (CSRF) درس مجاني في Cyber Security Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cyber Security Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cyber Security Academy 4 دروس في المجموع.

ما هي CSRF؟

تخدع تزوير الطلبات عبر المواقع (CSRF) متصفح مستخدم موثّق لإجراء طلبات غير مصرّح بها إلى تطبيق ويب. ويرسل المتصفح ملفات تعريف الارتباط تلقائياً مع الطلبات، لذلك لا يستطيع الخادم التمييز بين الطلبات المشروعة والمزوّرة من دون إجراءات إضافية.

كيف تعمل CSRF

السيناريو:

  1. الضحية سجّلت الدخول إلى bank.com (يوجد ملف تعريف ارتباط للجلسة في المتصفح)
  2. تزور الضحية صفحة المهاجم التي تحتوي على: <img src="https://bank.com/transfer?to=attacker&amount=1000">
  3. يرسل المتصفح طلب GET مع إرفاق ملف تعريف ارتباط bank.com
  4. يعالج البنك عملية التحويل

CSRF مع طلبات POST

يتطلب CSRF عبر POST نموذجاً:

<form action="https://bank.com/transfer" method="POST" id="f">
  <input name="to" value="attacker">
  <input name="amount" value="1000">
</form>
<script>document.getElementById("f").submit()</script>

رموز CSRF

الدفاع الأساسي هو رمز CSRF: قيمة عشوائية سرية خاصة بكل جلسة (أو بكل طلب)، تُضمَّن في النماذج. ويتحقق الخادم من الرمز في كل طلب يغيّر الحالة. ولا يستطيع مهاجم على نطاق آخر قراءة الرمز (بفضل سياسة المصدر نفسه).

سمة SameSite لملف تعريف الارتباط

SameSite=Strict: لا يُرسل ملف تعريف الارتباط إطلاقاً مع الطلبات بين المواقع. SameSite=Lax: يُرسل ملف تعريف الارتباط مع عمليات التنقل الآمنة العليا (الروابط)، ولكن ليس مع طلبات POST من مواقع أخرى. وتستخدم المتصفحات الحديثة Lax افتراضياً، مما يقلل خطر CSRF بدرجة كبيرة.

نمط إرسال ملف تعريف الارتباط مرتين

بديل لتخزين الرمز على الخادم: عيّن ملف تعريف ارتباط CSRF عشوائياً، واشترط أيضاً إرساله كمعلمة في الطلب. ولا يستطيع المهاجم قراءة ملف تعريف الارتباط (بسبب المصدر نفسه)، لذلك لا يمكنه مطابقة قيمته في بيانات النموذج.

ترويسات الطلبات المخصصة

بالنسبة إلى طلبات AJAX، يوفر اشتراط ترويسة مخصصة (مثل X-Requested-With: XMLHttpRequest) حماية من CSRF، لأن المتصفحات تمنع البرامج النصية من المواقع الأخرى من تعيين ترويسات عشوائية (وتفرض CORS ذلك).

متى لا تكفي رموز CSRF

تفشل رموز CSRF في الحالات التالية:

  • وجود XSS — إذ يستطيع المهاجم قراءة الرمز باستخدام JavaScript
  • تسرّب الرمز في عنوان URL (ترويسة Referer)
  • كون الرمز قابلاً للتنبؤ أو إعادة استخدامه
  • تكوين CORS بشكل غير صحيح للسماح بمصدر المهاجم

اختبار CSRF

خطوات الاختبار:

  1. حدّد الطلبات التي تغيّر الحالة (POST وPUT وDELETE)
  2. أزِل رمز CSRF أو عدّله ثم أعد إرسال الطلب
  3. أنشئ إرسالاً لنموذج من مصدر مختلف وتحقق مما إذا كان ناجحاً
  4. تحقق من سمة SameSite في ملفات تعريف ارتباط الجلسة

CSRF في واجهات API

غالباً ما تكون واجهات REST API التي تستخدم JSON محصّنة من CSRF إذا كانت:

  • تتطلب Content-Type: application/json (لا تستطيع نماذج HTML تعيين هذه القيمة)
  • تستخدم مصادقة قائمة على الرموز (ترويسة Authorization، وليس ملفات تعريف الارتباط)

لكن واجهات API التي تقبل ملفات تعريف الارتباط يجب أن تطبّق حماية CSRF أيضاً.

مشهد CSRF الحديث

مع استخدام SameSite=Lax افتراضياً في Chrome وFirefox وSafari، تُحظر العديد من هجمات CSRF التقليدية. ومع ذلك، لا يزال من الممكن لهجمات النطاقات الفرعية وأنماط تنقّل معينة تجاوز Lax. اجمع بين SameSite ورموز CSRF للحصول على دفاع قوي.

اختبار سريع: CSRF

ما الدفاع الأساسي ضد هجمات CSRF في تطبيقات الويب؟

مراجعة الدرس

تستغل CSRF إرفاق المتصفح لملفات تعريف الارتباط تلقائياً لتزوير الطلبات الموثّقة من المواقع الضارة. الدفاع الأساسي: رموز CSRF التي يتحقق منها الخادم. الدفاع الثانوي: سمة SameSite=Strict/Lax لملف تعريف الارتباط. وتكون واجهات API التي تستخدم مصادقة بالرموز في الترويسات (وليس ملفات تعريف الارتباط) مقاومة لـ CSRF بطبيعتها. اجمع بين وسائل الدفاع؛ إذ يمكن لـ XSS تجاوز رموز CSRF عند وجوده.

الأسئلة الشائعة

هل درس «تزوير الطلبات عبر المواقع (CSRF)» مجاني؟

نعم — نص درس «تزوير الطلبات عبر المواقع (CSRF)» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cyber Security Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cyber Security Academy 4 دروس في المجموع.

ماذا ستتعلم في «تزوير الطلبات عبر المواقع (CSRF)»؟

تعلّم كيفية تزوير هجمات CSRF للطلبات الموثّقة، وكيف تدافع رموز CSRF وملفات تعريف الارتباط SameSite ضدها تتمرن على Cyber Security Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Cyber Security Academy؟

لا تُشترط خبرة سابقة. Cyber Security Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «تزوير الطلبات عبر المواقع (CSRF)»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Cyber Security Academy هذا؟

نعم. كل درس في Cyber Security Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. حقن SQL: كيف ولماذا يعمل
  2. البرمجة النصية عبر المواقع (XSS)
  3. تزوير الطلبات عبر المواقع (CSRF)
  4. سوء تهيئة الأمان والخدمات المكشوفة
← العودة إلى Cyber Security Academy