غیرفعال کردن فراموشی رمز عبور در وردپرس و حذف آن
- امنیت وردپرسافزونه وردپرسمقالات آموزشی
- بروزرسانی شده در

اگه میخواید کاربران سایتتون از فرم «رمزتون رو فراموش کردید؟» استفاده نکنن، اول باید مشخص کنید هدفتون چیه. برای بستن واقعی بازیابی، باید درخواست ساخت رمز تازه از مسیر فراموشی رمز رو محدود کنید. اگه میخواید لینک بازیابی هم دیده نشه، باید اون رو جداگانه از فرم ورود بردارید. فقط مخفیکردن لینک کافی نیست؛ چون نشانی مستقیم صفحه بازیابی همچنان کار میکنه.
توی این آموزش اول میبینیم چه زمانی انجام این کار منطقیه. بعد با قابلیت ورود بدون رمز افزونه میهن پنل آشنا میشیم؛ روشی که کاربر توی اون ایمیل یا شماره موبایلش رو وارد میکنه و یک کد ورود میگیره. در نهایت هم یاد میگیریم چطور با کد، بازیابی رمز وردپرس رو غیرفعال کنیم و لینک اون رو از فرم ورود پیشفرض برداریم. روش محدودکردن این قابلیت برای نقشهای کاربری مشخص و راههای امنتر جایگزین رو هم بررسی میکنیم.
آنچه در این مقاله میخوانید
آیا غیرفعال کردن فراموشی رمز عبور در وردپرس کار درستیه؟
خود وردپرس برای بازیابی رمز، یک کلید موقت میسازه و لینک اون رو به ایمیل ثبتشده کاربر میفرسته. پس وجود این قابلیت بهتنهایی به معنی ناامنبودن سایت نیست.
غیرفعالکردن بازیابی بیشتر برای سایتهای خصوصی، سایتهای سازمانی یا حسابهایی مناسبه که مدیر سایت رمز اونها رو مدیریت میکنه. اگه سایتتون فروشگاهی یا کاربرمحوره، حذف کامل این قابلیت ممکنه کاربران واقعی رو از حسابشون بیرون نگه داره و درخواستهای پشتیبانی رو بیشتر کنه.
قبل از شروع، یک راه جایگزین برای تغییر رمز در نظر بگیرید. برای نمونه، مدیر سایت میتونه از بخش کاربران رمز تازه بسازه. اگه به پیشخوان دسترسی ندارید، آموزش تغییر رمز وردپرس از طریق phpMyAdmin هاست هم به کارتون میاد. این روش به پایگاه داده سایت دست میزنه؛ پس قبل از انجامش حتماً نسخه پشتیبان بگیرید و مراحل آموزش رو دقیق پیش ببرید.
استفاده از میهن پنل برای ورود بدون نیاز به رمز
میهن پنل گزینهای برای غیرفعالکردن قابلیت فراموشی رمز عبور وردپرس نداره. راهکار این افزونه متفاوته: کاربر ایمیل یا شماره موبایلش رو وارد میکنه، یک کد ورود براش فرستاده میشه و با همون کد وارد حسابش میشه. پس کاربر لازم نیست رمزی رو حفظ کنه یا برای بازیابی اون سراغ لینک «رمزتون رو فراموش کردید؟» بره. امکانات قابلاستفاده و روش ارسال کد به نسخه میهن پنل، تنظیمات افزونه و سرویس ارسال پیامک یا ایمیل شما بستگی داره.

اول میهن پنل رو نصب و فعال کنید. بعد صفحه ورود و ناحیه کاربری رو طبق تنظیمات افزونه بسازید و اون رو بهعنوان مسیر ورود کاربران قرار بدید. برای دیدن مراحل این کار میتونید آموزش سفارشیسازی صفحه ورود وردپرس با میهن پنل رو بخونید.
ورود با کد چند مزیت مهم داره. کاربر سریعتر وارد حسابش میشه، لازم نیست یک رمز دیگه رو به خاطر بسپاره و درخواستهای پشتیبانی مربوط به رمز فراموششده کمتر میشن. این روش وابستگی ورود روزمره به رمزهای ضعیف یا تکراری رو هم کمتر میکنه.
یادتون نره که ورود بدون رمز میهن پنل، قابلیت بازیابی رمز رو در هسته وردپرس غیرفعال نمیکنه. ممکنه نشانی مستقیم صفحه بازیابی پیشفرض وردپرس همچنان باز باشه. اگه فقط میخواید کاربران بدون دردسر وارد حسابشون بشن، ورود با کد میهن پنل میتونه کافی باشه. ولی اگه هدفتون بستن کامل بازیابی رمز وردپرسه، باید روش کدنویسی بخش بعد رو هم انجام بدید.
غیرفعال کردن بازیابی رمز عبور با کد
برای این روش بهتره کد رو داخل فایل functions.php قالب نذارید؛ چون با تغییر یا بهروزرسانی قالب ممکنه کدتون از بین بره. راه مطمئنتر اینه که یک افزونه کوچک اختصاصی بسازید یا منطق تابع و فیلتر رو با افزونه مدیریت قطعهکد اجرا کنید.
قبل از هر تغییری از سایتتون نسخه پشتیبان بگیرید. کد کامل زیر برای ساخت افزونه اختصاصی آماده شده:
<?php/** * Plugin Name: MihanWP Disable Password Reset * Description: Disables password reset for users without the manage_options capability. * Version: 1.0.0 */if ( ! defined( 'ABSPATH' ) ) { exit;}/** * Disable password reset for users without administrative access. */function mihanwp_disable_password_reset( $allow, $user_id ) { if ( user_can( $user_id, 'manage_options' ) ) { return $allow; } return new WP_Error( 'password_reset_disabled', 'بازیابی رمز عبور برای این حساب غیرفعال شده. لطفاً با مدیر سایت تماس بگیرید.' );}add_filter( 'allow_password_reset', 'mihanwp_disable_password_reset', 10, 2 );فیلتر allow_password_reset به وردپرس میگه آیا کاربر اجازه بازیابی رمز رو داره یا نه. کد بالا بازیابی رو برای حسابهایی میبنده که دسترسی manage_options ندارن. این دسترسی معمولاً برای مدیران سایت فعاله، ولی بعضی افزونهها ممکنه سطح دسترسی حسابها رو تغییر بدن. به همین دلیل بهتره نتیجه رو با حسابهای واقعی سایتتون آزمایش کنید.
وقتی کاربری که این دسترسی رو نداره فرم بازیابی رو ارسال کنه، وردپرس درخواستش رو رد میکنه. متن خطای نهایی ممکنه به نسخه وردپرس یا افزونههای ورود و امنیتی سایتتون بستگی داشته باشه؛ پس نمایش دقیق پیام داخل کد رو هم آزمایش کنید.
ساخت افزونه اختصاصی برای اجرای کد
اگه نمیخواید از افزونه مدیریت قطعهکد کمک بگیرید، داخل مسیر wp-content/plugins پوشهای با نام disable-password-reset بسازید. بعد یک فایل با نام disable-password-reset.php داخل همون پوشه قرار بدید و کد کامل بالا رو توی اون بذارید. میتونید این کار رو از طریق فایل منیجر هاست یا FTP انجام بدید.
حالا وارد پیشخوان وردپرس بشید و از بخش «افزونهها ← افزونههای نصبشده»، افزونه «MihanWP Disable Password Reset» رو فعال کنید. اگه بعد از فعالسازی با خطا روبهرو شدید، فایل رو از پوشه افزونهها خارج کنید و کد رو دوباره بررسی کنید. اگه از افزونه مدیریت قطعهکد استفاده میکنید، معمولاً نباید خط آغازین <?php و سربرگ افزونه رو وارد کنید؛ راهنمای همون افزونه رو برای قالب درست کد ببینید.
غیرفعال کردن بازیابی برای نقشهای کاربری مشخص
شاید نخواید بازیابی رمز رو برای همه ببندید. برای نمونه، میتونید این امکان رو برای مدیران و ویرایشگرها نگه دارید و فقط برای مشترکها غیرفعال کنید. نقش کاربری یعنی سطح دسترسی هر حساب؛ مثل مدیر، نویسنده یا مشترک.
برای بستن بازیابی فقط برای نقش پیشفرض «مشترک»، کد افزونه قبلی رو با کد زیر جایگزین کنید:
<?php/** * Plugin Name: MihanWP Disable Subscriber Password Reset * Description: Disables password reset only for users with the subscriber role. * Version: 1.0.0 */if ( ! defined( 'ABSPATH' ) ) { exit;}/** * Disable password reset only for subscribers. */function mihanwp_disable_subscriber_password_reset( $allow, $user_id ) { $user = get_userdata( $user_id ); if ( $user && in_array( 'subscriber', (array) $user->roles, true ) ) { return new WP_Error( 'password_reset_disabled', 'بازیابی رمز عبور برای این حساب غیرفعال شده. لطفاً با مدیر سایت تماس بگیرید.' ); } return $allow;}add_filter( 'allow_password_reset', 'mihanwp_disable_subscriber_password_reset', 10, 2 );این نمونه فقط نقش پیشفرض subscriber رو بررسی میکنه. فروشگاهها، سامانههای آموزشی و افزونههای عضویت ممکنه نقشهای دیگهای بسازن؛ پس قبل از تغییر کد، نام فنی نقش موردنظرتون رو بررسی کنید. فقط یکی از دو قطعهکد این مقاله رو فعال کنید. اگه هر دو رو همزمان بذارید، عیبیابی نتیجه سختتر میشه.
چطور لینک فراموشی رمز رو از فرم ورود حذف کنیم؟
روش حذف لینک به فرمی بستگی داره که استفاده میکنید. میهن پنل گزینهای برای غیرفعالکردن فراموشی رمز نداره؛ در عوض، ورود کاربر رو با کدی انجام میده که به ایمیل یا شماره موبایلش فرستاده میشه. با قراردادن فرم ورود میهن پنل بهعنوان مسیر اصلی ورود، کاربران برای ورود روزمره به رمز و بازیابی اون نیاز ندارن.
اگه از صفحه ورود پیشفرض وردپرس استفاده میکنید، کد زیر لینک فراموشی رمز رو فقط از ظاهر همون صفحه پنهان میکنه. این کد مسیر بازیابی رو نمیبنده؛ پس باید اون رو همراه کد بخش قبلی به افزونه اختصاصی خودتون اضافه کنید:
/** * Hide the lost-password link on the default WordPress login screen. */function mihanwp_hide_lost_password_link() { echo '<style id="mihanwp-hide-lost-password"> .login #nav a[href*="action=lostpassword"] { display: none !important; } </style>';}add_action( 'login_head', 'mihanwp_hide_lost_password_link' );این روش برای فرم پیشفرض وردپرس نوشته شده. اگه قالب یا افزونه دیگهای فرم ورود رو ساخته، ممکنه ساختار و نشانی لینک فرق داشته باشه و این کد روی اون اثر نذاره. در این حالت باید تنظیمات همون فرم رو بررسی کنید. دستکاری ترجمه عبارت «رمزتون رو فراموش کردید؟» روش قابلاعتمادی نیست؛ چون فقط متن رو تغییر میده و مسیر بازیابی همچنان باز میمونه.
آزمایش غیرفعال شدن فراموشی رمز عبور
بعد از فعالکردن کد، از حساب مدیریت خارج نشید. اول یک پنجره ناشناس مرورگر باز کنید و این مراحل رو انجام بدید:
- صفحه ورود سایتتون رو باز کنید.
- بررسی کنید که لینک فراموشی رمز از فرم پیشفرض پنهان شده.
- نشانی
wp-login.php?action=lostpasswordرو مستقیم باز کنید. - نام کاربری یا ایمیل یک حساب آزمایشی با نقش هدف رو وارد کنید.
- بررسی کنید که وردپرس درخواست بازیابی رو رد میکنه.
- اگه حسابهای دارای دسترسی مدیریتی رو مستثنا کردید، عملکرد بازیابی اونها رو هم جداگانه آزمایش کنید.
بعد صندوق ایمیل حساب آزمایشی رو هم بررسی کنید. نباید ایمیل بازیابی تازهای برای کاربری که دسترسی اون بسته شده ارسال بشه. اگه افزونه ورود، امنیت یا عضویت دارید، آزمایش رو از فرم ساختهشده با همون افزونه هم انجام بدید.
راههای بهتر برای افزایش امنیت صفحه ورود
اگه هدفتون فقط افزایش امنیت وبسایت هست، معمولاً لازم نیست بازیابی رمز رو برای همه حذف کنید. میتونید مسیر بازیابی رو نگه دارید و خود صفحه ورود رو امنتر کنید.
- تعداد تلاشهای ورود و درخواستهای بازیابی رو محدود کنید.
- برای حسابهای مهم، ورود دومرحلهای رو فعال کنید.
- از رمزهای طولانی و متفاوت استفاده کنید.
- ایمیل مدیر سایت رو با رمز قوی و ورود دومرحلهای امن کنید.
- وردپرس، قالب و افزونهها رو مرتب بهروز نگه دارید.
- حسابهای اضافی و بدون استفاده رو با احتیاط بررسی و حذف کنید.
برای بررسی گزینههای امنیتی میتونید مقایسه Wordfence و All in One WP Security رو هم بخونید. اگه به ورود سادهتر بدون وابستگی به رمز فکر میکنید، روش ورود با پیامک در وردپرس با میهن پنل پرو هم میتونه انتخاب مناسبی باشه.
جمعبندی
میهن پنل قابلیت فراموشی رمز وردپرس رو غیرفعال نمیکنه. این افزونه نیاز کاربر به رمز رو با ورود از طریق کد کمتر میکنه؛ یعنی کاربر ایمیل یا شماره موبایلش رو وارد میکنه و کد ورود میگیره. این روش ورود رو سادهتر میکنه و میتونه تعداد مشکلات مربوط به رمز فراموششده رو پایین بیاره.
اگه میخواید مسیر بازیابی پیشفرض وردپرس واقعاً بسته بشه، باید یکی از کدهای این آموزش رو فعال کنید. حذف ظاهری لینک یک کار جداست و بهتنهایی جلوی دسترسی مستقیم به فرم بازیابی رو نمیگیره. قبل از انجام این کار، حتماً راه جایگزینی برای ورود یا تغییر رمز کاربران داشته باشید و نتیجه رو با حسابهای آزمایشی بررسی کنید.
سؤالات متداول
آیا حذف فراموشی رمز عبور امنیت وردپرس رو بیشتر میکنه؟
نه همیشه. وردپرس برای بازیابی از لینک موقت استفاده میکنه. برای بیشتر سایتها، محدودکردن درخواستها، ورود دومرحلهای و امنکردن ایمیل کاربران انتخاب بهتریه.
آیا میهن پنل بازیابی رمز رو غیرفعال میکنه؟
نه. میهن پنل بهجای غیرفعالکردن فراموشی رمز، امکان ورود با کد رو فراهم میکنه. کاربر ایمیل یا شماره موبایلش رو وارد میکنه و کد ورود میگیره؛ پس برای ورود عادی نیازی به حفظ یا بازیابی رمز نداره. برای بستن مسیر بازیابی پیشفرض وردپرس باید از کد مناسب کمک بگیرید.
ورود با کد میهن پنل چه مزیتی داره؟
کاربر لازم نیست رمز دیگهای رو حفظ کنه و راحتتر وارد حسابش میشه. این روش میتونه درخواستهای پشتیبانی مربوط به رمز فراموششده و وابستگی کاربران به رمزهای ضعیف یا تکراری رو کمتر کنه.
بعد از غیرفعالکردن بازیابی، مدیر چطور رمز کاربر رو عوض میکنه؟
مدیر میتونه وارد پیشخوان بشه، کاربر موردنظر رو از بخش کاربران باز کنه و براش رمز تازه بسازه. در شرایط اضطراری، تغییر رمز از طریق phpMyAdmin هم ممکنه؛ ولی قبل از دستزدن به پایگاه داده باید نسخه پشتیبان بگیرید و آموزش کامل این کار رو دنبال کنید.
چطور قابلیت بازیابی رمز رو دوباره فعال کنیم؟
قطعهکد رو غیرفعال کنید یا افزونه اختصاصی ساختهشده برای اون رو از بخش افزونهها غیرفعال کنید. بعد فرم بازیابی رو با یک حساب آزمایشی بررسی کنید.

برای ارسال نظر لطفا ابتدا ثبتنام کنید یا وارد شوید.