تحديث طريقة تشفير كلمة المرور

مرحباً @everyone

أحتاج إلى تطبيق تغييرات مخصصة على مستوى التعليمات البرمجية وعلى مستوى قاعدة البيانات في تطبيق Discourse Rails الخاص بي لتلبية متطلباتي المحددة.

تحديث طريقة تشفير كلمة المرور. حاليًا، يستخدم Discourse “PBKDF2” لتشفير كلمة المرور.
وفقًا لمتطلباتي، أحتاج إلى التبديل إلى “MD5” بدلاً من “PBKDF2”.

لقد قمت بإعداد التعليمات البرمجية في بيئتي المحلية وقمت أيضًا بنشر Discourse في بيئة الإنتاج باستخدام Docker.

عندما أقوم بتحديث التعليمات البرمجية المحلية بناءً على متطلباتي، أحتاج إلى إعادة نشر التعليمات البرمجية المحدثة الخاصة بي في بيئة الإنتاج، ولكن حاليًا، قمت بتعيين ملف Docker الرسمي لـ Discourse في بيئة الإنتاج، لذا أحتاج إلى إنشاء ملف Docker جديد. كيف يمكنني إنشاء ملف Docker جديد وكيف يمكنني الوصول إلى قاعدة بيانات PostgreSQL لتطبيق Discourse في بيئة الإنتاج؟

يبدو هذا تدهورًا أمنيًا كبيرًا. MD5 غير مناسب لتجزئة كلمات المرور. لن يؤثر هذا التغيير على جزء حاسم من Discourse فحسب، بل ستحتاج أيضًا إلى صيانته لجميع الإصدارات المستقبلية.

ربما يمكننا اقتراح نهج أفضل إذا كان بإمكانك شرح ما تحاول تحقيقه.

فيما يتعلق بتخصيص Discourse، يرجى إلقاء نظرة على Developing Discourse Plugins - Part 1 - Create a basic plugin. يسمح لك نظام الإضافات بتوسيع الميزات الأساسية بأمان.

6 إعجابات

لقد قمت بإنشاء واجهات برمجة تطبيقات جديدة وأحتاج إلى إعادة نشرها في رمز الإنتاج الخاص بي. كيف يمكن نشرها في Docker الإنتاجي؟

تريد إجراء تغييراتك في إضافة. إذا كنت ترغب في عمل نسخة من Discourse ومحاولة صيانتها بشكل منفصل، فسوف تندم بشدة، إذا كان التاريخ مؤشرًا.

ما المشكلة التي تحاول حلها باستخدام كلمات المرور المخزنة كـ MD5 hash؟ كما تم اقتراحه بالفعل، يبدو أن الإنترنت بأكمله يتفق على أن MD5 ليس تشفيرًا وغير مناسب لتخزين كلمات المرور.

3 إعجابات

توضيح: كما يذكر جاي ملاحظات، لا يعتبر كل من MD5 و PBKDF2 دوال تشفير.

كلاهما دوال تجزئة. لا يقوم Discourse بتخزين كلمات المرور.

صحيح تمامًا. حتى لو لم تصدقنا، فنحن لسنا الوحيدين الذين يقولون ذلك.

ما المشكلة التي تحاول حلها؟

4 إعجابات

أحتاج إلى مساعدة للعثور على حل. أحتاج إلى تغيير طريقة تشفير في ROR (Discourse). حاليًا، أستخدم تشفير MD5. لقد أجريت تغييرات على مستوى الكود في بيئتي المحلية. كيف يمكنني عكس هذه التغييرات على الخادم المباشر دون مساعدة Docker؟

حاليًا، تم إعداد بيئة الإنتاج باستخدام تكوين Docker

هذا هو الرابط الذي تم اتباعه لإعداد بيئة الإنتاج.
URL: discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub

لم تقل بعد ما هي المشكلة التي تحاول حلها. هل يمكنك قول المزيد حول ما يحله MD 5؟

لا تزال بحاجة إلى تنفيذ أي تغييرات تجريها على إضافة (plugin). هل بدأت في تعلم كيفية عمل الإضافات (plugins)؟

لكن أراهن أن ما تريده حقًا هو المصادقة على Discourse مقابل تطبيقك الحالي، في حال كنت تحتاج فقط إلى تنفيذ discourse_connect ولن يحتاج Discourse إلى معرفة خياراتك في تخزين كلمات المرور.

إعجابَين (2)