هذا الموضوع يحتوي على 14 رد و مشاركَين وتمّ تحديثه آخر مرة بواسطة  الصاعقة قبل 3 سنوات، 6 شهور.

أضف رد جديد
الحالة: تم الحل
  • منشئ
    موضوع
  • #35183

    الصاعقة
    Participant

    السلام عليكم
    الحمد لله قمت بعملية تحويل منتديات vb إلى مدونة wp بكل نجاح والحمد لله اللي تم تحويله
    ☑ حل مشكلة الترميز
    ☑ الأعضاء
    ☑ المجموعات
    ☑ الأقسام
    ☑ المواضيع
    ☑ المرفقات
    ☑ الردود
    ☑ BBcode سواء للصندوق الإفتراضي أو الصندوق الماسي
    ☑ الروابط ( من خلال .htaccess )
    ☑ AFV Plugin لعرض المرفقات المحولة في المواضيع والردود

    مثل ما تعرفو انه طريقة تشفير الباسوردات تختلف من الـ vb والـ wp

    هل في طريقة اني أخلي تسجيل دخول بالمدونة بنفس باسورد الورد بريس

    ولو حتى نعدل على ملف تسجيل الدخول

    اذا احد عنده مساعدة أو ملاحظة ياليت ما يبخل علينا بيها

    ربما تحتاج خدمات ووردبريس مدفوعة؟ ندعوك لزيارة عرب ووردبريس بريميوم - الفرع التجاري الرسمي لموقع عرب ووردبريس.
مشاهدة 4 ردود - 11 حتى 14 (من مجموع 14)
  • الكاتب
    الردود
  • #35298

    sidati
    Participant

    مبرووك لك، لكن هناك ثغرة SQL Injection في الكود الخاص بك وهذه ثغرة خطيرة كافية لاختراق الموقع بشكل كامل.
    حسب الكود الذي ارسلته لك، فيمكنك استقبال جميع المتغيرات التي تحتاج عبر الفيلتر دون حاجة الى عمل طلبات من القاعدة مباشرة، اذا كان المشكل أنك لم تستقبل سوى المتغير الأول فقط قم بتغيير:

    add_filter('check_password', 'vb_check', 99);
    

    إلى

    add_filter('check_password', 'vb_check', 99, 4);

    في حالة تريد استعمال كودك فعليك فقط باستخدام الدالة sanitize_user بدل trim واستخدام الدالة prepare عىل الخاصة بـ wpdb لطبقة اخرى من الحماية :

    $user = $wpdb->get_row($wpdb->prepare("SELECT * FROM $wpdb->users WHERE user_login = %s", $loginAFV)) ; 
    

    المتغير $user يحتوي على جميع المعلومات ولن تحتاج الى foreach.

    هذا والله أعلم

    #35299

    الصاعقة
    Participant

    بارك الله فيك

    وهذا الكود النهائي

    /////////////////////////////////////////////////////////////////////////////////
    //  vbulletin   login check and Update passwords  //
    /////////////////////////////////////////////////////////////////////////////////
        function vb_check($check) {
            global $passAFV,$loginAFV,$wpdb;          
    
                $m = $wpdb->get_row($wpdb->prepare("SELECT * FROM $wpdb->users WHERE user_login = %s", $loginAFV)) ;   // info User
     
                 foreach ($m as $res) {  $user_id = $res->ID;  $vb_pass= $res->user_pass;} // user id and Hash of old pass
     
                $salt = get_user_meta($user_id, 'salt', true);   // get salt
     
                $vb_hash = md5(md5($passAFV) . $salt); // generate hash to check with old
    
     // echo "vb hash ". $vb_hash."<br> vb pass  ".$vb_pass."<br> vb Salt ". $salt ."<br>pass ". $passAFV;
    
               if ($vb_pass == $vb_hash) {
     			wp_update_user(array(
    					'ID' => $user_id,
    					'user_pass' => $passAFV 
    				)); // Update password
                   $delete_salt = delete_user_meta( $user_id, 'salt' ); // delete salt from database is_user_logged_in()
                    return true;  //  authorization login
                }
             
            return $check;  // worng password
        }
     
         
         if ( isset($_POST['wp-submit']) ){
            $loginAFV = sanitize_user($_POST['log']);
            $passAFV = $_POST['pwd'];
           add_filter('check_password', 'vb_check', 99);
        }
    
    
    
    #35300

    sidati
    Participant

    كما أخبرتك السطر التاسع لا تحتاج فيه الـ foreach باعتبار أن المتغير $m يُرجع صف واحد، فاذا طبعت المتغير $m ستظهر نتيجة واحدة ويمكنك طلب القيم كالتالي :

    $user_id = $m->ID;
    $vb_pass= $m->user_pass;

    أو تعويضها مباشرة في الكود دون ردها الى متغير جديد، في حالة قمت بتجاربك ونجح الأمر، قم بتغيير حالة الموضوع إلى “تم الحل”.

    والله الموفق

    #35310

    الصاعقة
    Participant

    كما أخبرتك السطر التاسع لا تحتاج فيه الـ foreach باعتبار أن المتغير $m يُرجع صف واحد، فاذا طبعت المتغير $m ستظهر نتيجة واحدة ويمكنك طلب القيم كالتالي :

    أو تعويضها مباشرة في الكود دون ردها الى متغير جديد، في حالة قمت بتجاربك ونجح الأمر، قم بتغيير حالة الموضوع إلى “تم الحل”.

    والله الموفق

    هذا الكود سأطبقه بعدين
    لكن الحمد لله تمت بنجاح

    واشكرك بعنف أخي

مشاهدة 4 ردود - 11 حتى 14 (من مجموع 14)

يجب تسجيل الدخول للرد على هذا الموضوع.

الحالة: تم الحل