الحماية من استرجاع الباسوورد لووردبريس
السلام عليكم ورحمة الله وبركاته
هذا الموضوع كتبته لاني مليت من الرسائل التي تصلني بخصوص استرجاع الباسوورد لموقعي والذي يبدوا لبعضكم انه امر بدون اهمية وينساق وراء الجملة المشهورة التي تأتي مع الرسالة “إذا كان هذا الطلب بالخطأ، فقط تجاهل هذه الرسالة ولن يحدث شئ.” كيف لن يحدث شيء لنفرض ان احد الاضافات التي استعمل مصابة بتغرة sql injection ولو انه ناذرا ما نسمع بثغرات من هذا النوع في ووردبريس لكن لا احد يعلم ما هو قادم فالاحتياط واجب. المهم ندخل في صلب الموضوع
السبب وراء الغاء استرجاع الباسوورد
كما ذكرت سابقا كترت رسائل اعادة تعين الباسوورد المملة وايضا خطورة الامر في حالة كانت هناك اضافة مصابة بتغرة sql injection او تغرة في الووردبريس نفسه كما هو معلوم عندما تصلك رسالة يكون بها رابط بهذا الشكل تقريبا :
https://www.mwordpress.net/wp-login.php?action=rp&key=3egPdfrxRBgLdwp&login=user
- 3egPdfrxRBgLdwp : هذا مفتاح التفعيل لاعادة تعين الباسوورد لليوزر
- user : عادة يكون admin وهو اسم المستخدم الذي سيتم تغير الباسوورد له
هنا سنتطرق لكيف يمكن للمخترق الحصول على مفتاح تفعيل اعادة تعين الباسوورد عبر حقن القاعدة بطبيعة الحال اذا وجدت ثغرة نلقى نظرة اولا على جدول wp_users للمشرف
في حالة تم طلب اعادة تعيين كلمة المرور سيتم تسجيلها في خانة user_activation_key المشار لها بالسهم الاحمر قمت بحذف القيمة في الصورة , المهم هذه القيمة والتي مثلنها سابقا ب 3egPdfrxRBgLdwp المخترق يمكنه الحصول عليها فقط بواسطة حقن القاعدة عبر ثغرات sql injection
المهم انا هنا وضحت لك خطورة الموقف بالنسبة لموقعك اذا كان يهمك الامر تابع معي الخطوات التي يجب عليك القيام بها لكي تتجنب هذه المشكلة
منع اعادة استرجاع الباسوورد
هنا سنقوم بخطوتين فقط وهما اخفاء رابط استرجاع كلمة المرور واعادة توجيه من يطلب صفحة استرجاع كلمة المرور الى الصفحة الرئيسية
اخفاء رابط استرجاع الباسوورد
لاخفاء رابط استرجاع كلمة المرور سنستعمل دالة لكي تقوم بازالة رابط اعادة تعيين الباسوورد الدالة وجدتها في الدعم الفني للووردبريس قمت بتعديل فقط جملة واشتغلت مع اني منذ مدة جربت احدى الاضافات لكن لم تشتغل. نفتح ملف functions.php ونضيف اخر الملف الدالة التالية :
function remove_password_reset_text ( $text ) { if ( $text == "هل فقدت كلمة مرورك ؟" ) { $text = ""; } return $text; } function remove_password_reset() { add_filter( "gettext", "remove_password_reset_text" ); } add_action ( "login_head", "remove_password_reset" );
وهكذا سختفي الرابط
منع اعادة الباسوورد للمشرفين فقط
بالنسبة لهذه الطريقة سنحتاج اضافة تقوم بالغرض وقد وجدت الاضافة “Prevent Password Reset” يمكنك تحميلها وتنصيبها على مدونتك الامر لا يحتاج شرح المهم بعدما تقوم بتنصيبها في مدونتك توجه الىحساب الادمين وقم بوضع علامة على Password Reset كما هو موضح في الصورة التالية :
عند استعمال هذه الاضافة لن يستطيح احد استرجاع الباسوورد للادمين وستظهر له رسالة بالشكل التالي :
الى هنا اعانكم الله والى اللقاء في تدونة اخرى ان شاء الله