حماية CSRF وتدفّق POST
عالج دورة الإرسال GET/POST بأمان
حماية CSRF وتدفّق POST درس مجاني في Django Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Django Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Django Academy 4 دروس في المجموع.
ما المقصود بـ CSRF
تخدع CSRF مستخدمًا سجّل دخوله لإرسال طلب مخفي. يمنعها Django حتى لا يتمكن المهاجمون من التصرف نيابةً عن المستخدم. 🔒
الحماية مفعّلة
يفعّل Django البرمجية الوسيطة CsrfViewMiddleware افتراضيًا، لذلك يُرفض كل طلب POST غير المحمي حتى تضيف الرمز الصحيح.
وسم csrf_token
أضف {% csrf_token %} داخل كل نموذج POST. فهو يحقن حقلًا مخفيًا يحتوي على رمز سري خاص بالجلسة.
<form method="post">
{% csrf_token %}
</form>لماذا ينجح ذلك
يثبت الرمز أن الطلب جاء من صفحتك أنت. ولا يستطيع نموذج مزور في موقع آخر تخمينه، لذلك يفشل POST.
يعرض GET النموذج
يعرض طلب GET نموذجًا فارغًا غير مرتبط حتى يتمكن المستخدم من بدء كتابة مدخلاته.
if request.method == "GET":
form = ContactForm()يرسل POST البيانات
يرسل POST القيم المملوءة مرة أخرى. اربطها بالنموذج وشغّل التحقق قبل تنفيذ أي إجراء.
if request.method == "POST":
form = ContactForm(request.POST)تحقق ثم نفّذ
إذا كان النموذج المرتبط is_valid()، فعالج cleaned_data: احفظه، أو أرسل بريدًا إلكترونيًا، أو نفّذ أي إجراء مخصص للنموذج.
if form.is_valid():
save(form.cleaned_data)إعادة التوجيه بعد النجاح
عند النجاح، نفّذ إعادة توجيه إلى عنوان URL جديد. يمنع نمط Post/Redirect/Get إعادة إرسال البيانات عند تحديث الصفحة.
return redirect("thanks")إعادة العرض عند وجود أخطاء
إذا فشل التحقق، أعد عرض القالب نفسه باستخدام النموذج المرتبط. سيظل محتفظًا بالمدخلات ويعرض كل خطأ.
return render(request, "contact.html",
{"form": form})النمط الكامل
يُعد هذا التسلسل، من GET لعرض النموذج إلى POST لمعالجته، عرض النموذج القياسي. ويتولى عرض واحد معالجة الطريقتين بوضوح.
form = ContactForm(request.POST or None)
if form.is_valid():
return redirect("thanks")انتبه إلى طلبات AJAX
يجب أن ترسل طلبات POST من JavaScript الرمز المميز في ترويسة X-CSRFToken، بعد قراءته من ملف تعريف الارتباط csrftoken، وإلا رفضها Django.
تحقق سريع
اختبر معرفتك بـ CSRF وPOST.
مراجعة
أضف csrf_token إلى كل نموذج POST. يعرض GET النموذج، ويتحقق POST من صحته، ثم ينفّذ إعادة توجيه عند النجاح أو يعيد العرض عند وجود أخطاء. ✅
تعلم Python مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 30
- الدروس
- 120
الأسئلة الشائعة
هل درس «حماية CSRF وتدفّق POST» مجاني؟
نعم — نص درس «حماية CSRF وتدفّق POST» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Django Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Django Academy 4 دروس في المجموع.
ماذا ستتعلم في «حماية CSRF وتدفّق POST»؟
عالج دورة الإرسال GET/POST بأمان تتمرن على Django Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Django Academy؟
لا تُشترط خبرة سابقة. Django Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «حماية CSRF وتدفّق POST»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Django Academy هذا؟
نعم. كل درس في Django Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- تعريف forms.Form
- is_valid وcleaned_data
- عرض النماذج في القوالب
- حماية CSRF وتدفّق POST