Django Academy · درس

دفاعات XSS وCSRF وSQL Injection

استخدام وسائل حماية Django بطريقة صحيحة

الدرس 3 من 413 خطوة

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

أخطر ثلاث هجمات على الويب

تأتي معظم الاختراقات على الويب من ثلاث هجمات معروفة: XSS وCSRF وSQL injection. والخبر الجيد أن Django يدافع ضدها جميعًا عند استخدامه بالطريقة المعتادة. 🛡️

ما هو XSS

يحدث XSS عندما يُعرض نص يقدمه المهاجم على هيئة HTML أو script فعال في متصفح مستخدم آخر، مما يتيح له سرقة البيانات أو اختطاف الصفحة.

القوالب تهرب تلقائيًا

يقوم محرّك قوالب Django بعملية auto-escapes للمتغيرات، فيحوّل الأحرف الخطرة إلى كيانات آمنة. لذلك يظهر script ضمن إدخال المستخدم كنص غير ضار، لا كشيفرة.

<p>{{ user_comment }}</p>

لا تعطلوا عملية الهروب

يقوم المرشح safe وmark_safe بإيقاف عملية الهروب. استخدموهما فقط مع المحتوى الذي تثقون به تمامًا، وإلا فتحتم باب XSS بأنفسكم.

{{ user_comment|safe }}

ما هو CSRF

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

رمز CSRF

يحظر Django ذلك باستخدام رمز CSRF سري مرتبط بكل جلسة. لا يستطيع نموذج مزور من موقع آخر تضمين الرمز الصحيح، ولذلك يُرفض طلب POST.

إضافة الرمز إلى النماذج

أدرجوا وسم csrf_token داخل كل نموذج POST. يضيف Django الحقل المخفي ويتحقق منه عند الإرسال تلقائيًا.

<form method="post">{% csrf_token %}
  ...
</form>

ما هو SQL injection

تُدخل SQL injection تعليمات SQL ضارة في الاستعلام عبر إدخال المستخدم، مما يتيح للمهاجم قراءة البيانات أو تغييرها أو حذفها، رغم عدم امتلاكه حق الوصول إليها.

يحميكم ORM

يحافظ استخدام ORM على سلامتكم افتراضيًا. فهو يمرر القيم كمعاملات، ولذلك يُعامل إدخال المستخدم كبيانات، لا كـ SQL قابل للتنفيذ.

Article.objects.filter(title=user_input)

استخدموا المعاملات مع SQL الخام

إذا اضطررتم إلى كتابة SQL خام، فلا تدمجوا الإدخال في السلسلة النصية أبدًا. مرّروا القيم بوصفها parameters ليقوم برنامج التشغيل بتهريبها بأمان نيابةً عنكم.

Article.objects.raw("SELECT * FROM blog_article WHERE id = %s", [pk])

إضافة سياسة أمن المحتوى

لإضافة دفاع متعدد الطبقات ضد XSS، تخبر سياسة أمن المحتوى المتصفحات بالبرامج النصية التي يُسمح بتشغيلها. وهي تحد من الضرر حتى إذا تسللت علامات HTML ضارة.

تحقق سريع

سؤال واحد حول كيفية منع Django لهذه الهجمات.

مراجعة: الإعدادات الافتراضية صديقكم

تمنع auto-escaping في القوالب، ورمز CSRF، وORM الذي يستخدم المعاملات هجمات XSS وCSRF وSQL injection. التزموا بالإعدادات الافتراضية لتحافظوا على الأمان. 🙌

البدء مجانًا

تعلم Python مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
30
الدروس
120

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

هل درس «دفاعات XSS وCSRF وSQL Injection» مجاني؟

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

ماذا ستتعلم في «دفاعات XSS وCSRF وSQL Injection»؟

استخدام وسائل حماية Django بطريقة صحيحة تتمرن على Django Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

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

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

كم من الوقت يستغرق درس «دفاعات XSS وCSRF وSQL Injection»؟

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

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

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

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

  1. DEBUG وSECRET_KEY وALLOWED_HOSTS
  2. HTTPS وHSTS وملفات Cookies الآمنة
  3. دفاعات XSS وCSRF وSQL Injection
  4. تنفيذ قائمة التحقق من النشر
← العودة إلى Django Academy