10 نصائح لجعل Django Admin أكثر أمانًا

مسؤولية جعل تطبيقك آمنًا تكون على عاتق مختبري ضمان الجودة أو مكتب أمن المعلومات، ولكن الأمان هو مسؤولية الجميع. يعد Django Admin أحد الميزات المفضلة لدينا في Django، ولكن ما لم يتم إغلاقه بشكل صحيح، فإنه يوفر فرصًا للاستغلال. لحفظ المستخدمين من البيانات المخترقة، إليك 10 نصائح لجعل مسؤول Django أكثر أمانًا.

استخدم طبقة المقابس الآمنة (SSL)

انشر موقعك خلف HTTPS. إذا كنت لا تستخدم HTTPS، فمن الممكن أن يتطفل شخص ما على كلمة المرور الخاصة بك (أو كلمة المرور الخاصة بالمستخدمين لديك) أثناء تواجدك في مقهى أو مطار أو في مكان عام آخر. اقرأ المزيد حول تمكين SSL والخطوات الإضافية التي قد تحتاج إلى اتخاذها في مستندات Django).

تغيير عنوان URL

قم بتغيير عنوان URL الافتراضي للمسؤول من /admin/ إلى شيء آخر. التعليمات موجودة في وثائق Django، ولكن باختصار، استبدل admin/ في URL conf الخاص بك بشيء آخر:

urlpatterns = [
    path('my-special-admin-login/', admin.site.urls),
]

لمزيد من الأمان، قم باستضافة المسؤول على نطاق مختلف تمامًا. إذا كنت بحاجة إلى مزيد من الأمان، فاخدم المسؤول خلف VPN أو في مكان غير عام.

استخدم “Django-admin-honeypot”

بمجرد نقل موقع الإدارة الخاص بك إلى عنوان URL جديد (أو حتى قررت استضافته على نطاق خاص به)، قم بتثبيت مكتبة django-admin-honeypot على عنوان URL القديم /admin/ لالتقاط محاولات اختراق موقعك. ينشئ django-admin-honeypot شاشة تسجيل دخول مزيفة للمسؤول وسيرسل بريدًا إلكترونيًا إلى مسؤولي موقعك عندما يحاول شخص ما تسجيل الدخول إلى عنوان URL القديم.

سيحتوي البريد الإلكتروني الذي تم إنشاؤه بواسطة django-admin-honeypot على عنوان IP الخاص بالمهاجم، لذا لمزيد من الأمان إذا لاحظت محاولات تسجيل دخول متكررة من نفس عنوان IP، يمكنك منع هذا العنوان من استخدام موقعك.

طلب كلمات مرور قوية

يختار معظم المستخدمين كلمات مرور سيئة. يمكن أن يضمن تمكين التحقق من صحة كلمة المرور قيام المستخدمين بتحديد كلمات مرور أقوى، مما يؤدي بدوره إلى زيادة أمان بياناتهم والبيانات التي يمكنهم الوصول إليها في المسؤول. تتطلب كلمات مرور قوية عن طريق تمكين التحقق من صحة كلمة المرور. تحتوي وثائق Django على مقدمة رائعة حول كيفية تمكين أدوات التحقق من كلمة المرور التي تأتي مع Django. تحقق من أدوات التحقق من صحة كلمات المرور التابعة لجهات خارجية مثل django-zxcvbn-password لجعل كلمات مرور المستخدمين أكثر أمانًا.

استخدم المصادقة الثنائية

المصادقة الثنائية (2FA) هي عندما تحتاج إلى كلمة مرور بالإضافة إلى شيء آخر لمصادقة مستخدم لموقعك. ربما تكون على دراية بالتطبيقات التي تتطلب كلمة مرور ثم ترسل لك رمز تسجيل دخول ثانيًا قبل أن تسمح لك بتسجيل الدخول؛ تستخدم هذه التطبيقات المصادقة الثنائية (2FA).

هناك ثلاث طرق يمكنك من خلالها تمكين المصادقة الثنائية (2FA) على موقعك:

  • 2FA مع الرسائل القصيرة، حيث تكتب رمز تسجيل الدخول. وهذا أفضل من طلب كلمة مرور فقط، ولكن من السهل اعتراض الرسائل النصية القصيرة بشكل مدهش.
  • المصادقة الثنائية (2FA) باستخدام تطبيق مثل Google Authenticator، الذي يُنشئ رموز تسجيل دخول فريدة لأي خدمة تقوم بالتسجيل فيها. لإعداد هذه التطبيقات، سيحتاج المستخدمون إلى مسح رمز الاستجابة السريعة الموجود على موقعك لتسجيل موقعك في تطبيقهم. بعد ذلك، سيقوم التطبيق بإنشاء رمز تسجيل الدخول الذي يمكنهم استخدامه لتسجيل الدخول إلى موقعك.
  • تعد المصادقة الثنائية باستخدام YubiKey هي الطريقة الأكثر أمانًا لتمكين المصادقة الثنائية على موقعك. تتطلب هذه الطريقة أن يكون لدى المستخدمين جهاز فعلي، وهو YubiKey، يقومون بتوصيله بمنفذ USB عندما يحاولون تسجيل الدخول.

يمكن أن تساعدك مكتبة django-two-factor-auth في تمكين أي من طرق المصادقة الثنائية المذكورة أعلاه.

استخدم أحدث إصدار من جانغو

استخدم دائمًا أحدث إصدار من Django لمواكبة التحديثات الأمنية وإصلاحات الأخطاء. قم بالترقية إلى أحدث إصدار طويل الأمد (LTS) في أقرب وقت ممكن بالنسبة لك، ولكن تأكد بالتأكيد من ترقية مشروعك قبل أن يصبح خارج نطاق الدعم (راجع الإصدارات المدعومة في صفحة التنزيل).

لا تقم أبدًا بتشغيل “DEBUG” في الإنتاج

عند تعيين DEBUG على True في ملف الإعدادات، سيتم عرض الأخطاء مع تتبعات كاملة من المحتمل أن تحتوي على معلومات لا تريد أن يراها المستخدمون العاديون. قد يكون لديك أيضًا إعدادات أو طرق أخرى لا يتم تمكينها إلا عندما تكون في وضع التصحيح مما قد يشكل خطراً على المستخدمين وبياناتهم.

الإعدادات الأساسية التي يجب تغييرها لتطبيق Django في مرحلة الإنتاج

لتجنب ذلك، استخدم ملفات إعدادات مختلفة للتطوير المحلي و أخرى عد النشر و الإنتاج.

تذكر بيئتك

يجب على المسؤول أن يذكر بوضوح البيئة التي تتواجد فيها لمنع المستخدمين من حذف بيانات الإنتاج عن طريق الخطأ. يمكنك تحقيق ذلك بسهولة باستخدام مكتبة django-admin-env-notice، والتي ستضع شعار بالألوان في الجزء العلوي من موقع المشرف الخاص بك.

التحقق من وجود أخطاء

لا يقتصر هذا على مسؤول Django، لكنه لا يزال يمثل ممارسة رائعة لتأمين تطبيقك. ابحث عن الأخطاء الأمنية باستخدام python manager.py check --deploy. إذا قمت بتشغيل هذا الأمر أثناء تشغيل مشروعك محليًا، فمن المحتمل أن ترى بعض التحذيرات التي لن تكون ذات صلة بالإنتاج. على سبيل المثال، من المحتمل أن يكون إعداد DEBUG الخاص بك True,، ولكنك تستخدم بالفعل ملف إعدادات منفصلاً للتعامل مع ذلك أثناء الإنتاج.

ستبدو نتيجة هذا الأمر كما يلي:

?: (security.W002) You do not have 'django.middleware.clickjacking.XFrameOptionsMiddleware' in your MIDDLEWARE, so your pages will not be served with an 'x-frame-options' header. Unless there is a good reason for your site to be served in a frame, you should consider enabling this header to help prevent clickjacking attacks.
?: (security.W012) SESSION_COOKIE_SECURE is not set to True. Using a secure-only session cookie makes it more difficult for network traffic sniffers to hijack user sessions.
?: (security.W016) You have 'django.middleware.csrf.CsrfViewMiddleware' in your MIDDLEWARE, but you have not set CSRF_COOKIE_SECURE to True. Using a secure-only CSRF cookie makes it more difficult for network traffic sniffers to steal the CSRF token.

System check identified 3 issues (0 silenced).

لاحظ أن كل تحذير يحتوي على شرح لماهية المخاطر التي تواجهك وما يجب عليك تغييره. مزيد من المعلومات حول هذا الفحص موجودة في وثائق Django.

إجراء الفحوصات

هذه نصيحة أخرى ليست خاصة بالمسؤول، ولكنها لا تزال ممارسة جيدة. بمجرد النشر إلى موقع مرحلي، قم بتشغيل موقع الويب الخاص بك من خلال Sasha’s Pony Checkup. سيمنحك هذا الموقع درجة أمنية وقائمة مرتبة من الأشياء التي يجب القيام بها لتحسين هذه النتيجة. سيتم اختبار موقعك بحثًا عن بعض الأشياء التي ذكرناها أعلاه، وسيوصي أيضًا بطرق أخرى لحماية موقعك من نقاط ضعف وأنواع محددة من الهجمات.

هل تريد المزيد من المعلومات حول الأمن في جانغو؟

أفضل ممارسات Django: الحماية

كيفية استخدام مصادقة المستخدم في جانغو

أفضل ممارسات Django: أذونات المستخدم


اكتشاف المزيد من بايثون العربي

اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

Scroll to Top

اكتشاف المزيد من بايثون العربي

اشترك الآن للاستمرار في القراءة والحصول على حق الوصول إلى الأرشيف الكامل.

Continue reading