it-swarm.asia

إرسال كلمة مرور المستخدم في البريد

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

هل يمكن لأي شخص أن يخبرني كيف يجب أن أحصل على كلمة المرور المرتبطة بحساب مستخدم؟

20
Hacker

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

يمكن لـ Drupal إرسال بريد إلكتروني لإعادة تعيين كلمة مرور المستخدم ، وهو ليس ما تطلبه ، ولكن قد يكون من المفيد إذا كنت ترغب في أن يقوم المستخدمون بإعادة تعيين كلمة المرور الخاصة بهم بعد X من الشهور. في هذه الحالة ، قد تكون مهتمًا بالكود المستخدم بواسطة _ user_mail_notify () .

  // By default, we always notify except for canceled and blocked.
  $default_notify = ($op != 'status_canceled' && $op != 'status_blocked');
  $notify = variable_get('user_mail_' . $op . '_notify', $default_notify);
  if ($notify) {
    $params['account'] = $account;
    $language = $language ? $language : user_preferred_language($account);
    $mail = drupal_mail('user', $op, $account->mail, $language, $params);
    if ($op == 'register_pending_approval') {
      // If a user registered requiring admin approval, notify the admin, too.
      // We use the site default language for this.
      drupal_mail('user', 'register_pending_approval_admin', variable_get('site_mail', ini_get('sendmail_from')), language_default(), $params);
    }
  }
30
kiamlaluno

رجاء! لا تفعل هذا!

إن تنفيذ نظام تسجيل الدخول على تطبيق ويب أمر سهل. إن تنفيذ نظام تسجيل دخول آمن على تطبيق ويب أمر مختلف تمامًا. هناك العديد من الجوانب والتفاصيل التي يجب مراعاتها ، و Drupal يقوم بعمل جيد في التعامل مع تقريبًا من هذه الجوانب خارج منطقة الجزاء.

ستؤدي إضافة الميزة التي تطلبها إلى تقليل أمان التطبيق بشكل كبير. إذا تمكنت من فك تشفير كلمات المرور ، فقد جردت التطبيق للتو من ميزة أمان مهمة جدًا.

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

بطريقة عامة جدًا ، ربما أتعامل مع هذا بطريقة أو بأخرى بالطريقة التالية:

في وحدة مخصصة

  1. تنفيذ hook_cron ، سيؤدي ذلك إلى إنشاء مصفوفة تحتوي على جميع رسائل البريد الإلكتروني التي تطابق المعايير التي تختارها.

  2. قم بالمرور عبر الصفيف وأرسل رسائل البريد الإلكتروني عبر drupal_mail. انظر إلى الوظيفة _user_mail_notify() kiamlaluno المرتبطة بالأعلى.

إذا كان لدى المستخدم never تسجيل الدخول ، فأنت may تحتاج إلى إرسال إعادة تعيين بريد كلمة المرور (لست متأكدًا هنا) ، ربما باستخدام مزيج من drupal_mail و hook_mail_alter لتخصيص التسجيل أو إعادة تعيين البريد الإلكتروني لكلمة المرور حسب ذوقك.

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

حظا سعيدا صديقي ، هتاف لك وسنة جديدة سعيدة!

15
stefgosselin

يمكنك استخدام التشفير AES للحصول على كلمات مرور قابلة للقراءة.

ومع ذلك ، هناك أسباب جيدة جدًا لعدم إمكانية قراءة كلمات المرور في دروبال القياسي. IMHO باستخدام روابط استرداد pw مدمجة في اتجاه واحد هو أكثر أمانًا.

8
BetaRide

يمكنك استخدام رمز كلمة مرور الحساب الوحدة النمطية لإرسال كلمة المرور في البريد

مشروع تجريبي

هذا مشروع وضع الحماية ، والذي يحتوي على رمز تجريبي لاستخدام المطورين فقط.

توفر هذه الوحدة الصغيرة رمز كلمة مرور حساب المستخدم لإعدادات رسائل البريد الإلكتروني للحساب. سمح مسؤول الموقع بإرسال كلمة المرور إلى المستخدم في الإعدادات التالية: -

  1. مرحبًا (تم إنشاء مستخدم جديد بواسطة المسؤول)
  2. مرحبًا (لا تلزم الموافقة)
  3. تفعيل الحساب
  4. مرحبًا (لا توجد موافقة مطلوبة ، تم تعيين كلمة المرور)
  5. استعادة كلمة السر
0
Soliyappan