أبحث عن إمكانية استخدام تجزئات كلمات المرور المخزنة في ديسكورد في ملف htpassword لتطبيق آخر.
ما خوارزمية تجزئة كلمات المرور التي يستخدمها ديسكورد؟
أبحث عن إمكانية استخدام تجزئات كلمات المرور المخزنة في ديسكورد في ملف htpassword لتطبيق آخر.
ما خوارزمية تجزئة كلمات المرور التي يستخدمها ديسكورد؟
عذراً إذا كنتُ أساءت الفهم، لكن هل تقصد أنك ترغب في نسخ خوارزمية التجزئة (hashing) الخاصة بـ Discourse إلى تطبيقك الخاص، حتى تتمكن من مطابقة التجزئات التي يولدها تطبيقك مع تلك المخزنة في Discourse؟ ألا يتطلب ذلك منك مزامنة كلمات المرور بانتظام من Discourse إلى ملف htpasswd الخاص بك، والتعامل مع الأملاح (salts) التي قد يستخدمها Discourse حالياً أو في المستقبل، والحفاظ على توافق تنفيذك لخوارزمية التجزئة مع خوارزمية Discourse إلى الأبد؟
مرة أخرى، عذراً إذا أسأت الفهم تماماً، لكنني اضطررتُ إلى طلب التوضيح بدافع الفضول الشخصي.
فقط للتحقق من صحة اسم المستخدم وكلمة المرور.
يقوم المستخدم بتقديم اسم مستخدم وكلمة مرور. نتحقق من أن كلمة المرور المقدمة صحيحة وفقًا للتجزئة من Discourse. لن نقوم بتوليد أي تجزئات.
بعبارة “توليد”، لم أقصد التخزين، بل التحقق من صحة كلمة المرور.
أتساءل ما إذا كان نظام Discourse يدعم الدخول الموحد (SSO) في الاتجاه المعاكس، بحيث يتمكن المستخدمون من تسجيل الدخول إلى تطبيقات أخرى مباشرةً عبر Discourse.
نعم، يمكن أن يكون Discourse موثوقًا لتسجيل الدخول، وهذه هي المسار الصحيح @csmu - فمحاولة تكرار طريقة التجزئة ستؤدي إلى تعطيل طريقة تسجيل الدخول لديك في كل مرة تتغير فيها.
كما أن ذلك لن يراعي المستخدمين الذين لا يملكون كلمة مرور محلية.
إذا لم تكن مستعدًا أو قادرًا على قراءة المصدر للعثور على إجابة سؤالك المذكور، فقد يكون من الأفضل أن تتراجع قليلاً وتصف المشكلة التي تحاول حلها.
أنا قادر على قراءة المصدر بمجرد العثور عليه. لقد بحثت في الكود المصدري عن user.password، وركّزت بشكل أساسي على user_controller. لم يلفت انتباهي شيء. سأقدّر أي تلميحات حول المكان الذي يجب البحث فيه.
ما ينفع لي هو القدرة على التحقق من صحة مستخدم/كلمة مرور عبر discourse دون إضافة تسجيل دخول عبر SSO. ربما عبر الـ API أو استدعاء مباشر لبعض كود Ruby.
أوه، نعم. لا معنى لـ Rails إلا بعد أن تعرف مكان الأشياء. إليك هذا
لكنني ما زلت أنصح بالرجوع إلى الخلف ووصف المشكلة بدلاً من البدء بحلّك.
شكرًا لك جاي -
بعد قراءة
def confirm_password?(password)
return false unless password_hash && salt
self.password_hash == hash_password(password, salt)
end
في ملف user.rb
يعمل ما يلي للتحقق المباشر بلغة Ruby
user = User.find_by_email('some.email.address')
user.confirm_password?'valid-password'
=> true
كنت أختبر ملف .htaccess لخادم ما، وكنت أبحث عن طريقة للتحقق من اسم المستخدم وكلمة المرور عبر منصة Discourse لهذا الخادم دون الحاجة إلى معرفة كلمات المرور لتوليد ملف .htaccess. إن نهج SSO أفضل، ومعرفة كيفية التحقق من اسم المستخدم وكلمة المرور دون استخدام SSO ستكون مفيدة لي.
مرحبًا،
أود معرفة دالة تجزئة كلمة المرور المستخدمة لتسجيل الدخول المحلي والمعلمات المرتبطة بها (طول التجزئة، الملح، اسم المكتبة الفعلية). لم يساعدني النظر في ملف Ruby المذكور سابقًا. أحتاج إلى هذه المعلومات لأغراض الامتثال: تتطلب أفضل الممارسات المتعلقة بـ GDPR (وفي مجال أمن الأنظمة عمومًا) توثيق هذه المعلومات.
تعديل: وجدت الإجابة هنا: Export password hashes in the PHC format → discourse/docs/SECURITY.md at main · discourse/discourse · GitHub