در دنیای دیجیتال امروز، امنیت وبسایتها یکی از مهمترین دغدغههای مدیران سایتها و توسعهدهندگان است. وردپرس به عنوان یکی از محبوبترین سیستمهای مدیریت محتوا (CMS) در جهان، بهطور گستردهای مورد استفاده قرار میگیرد. با این حال، استفاده گسترده از وردپرس به این معناست که هکرها و مهاجمان نیز به دنبال نقاط ضعف در این سیستم هستند تا از آنها بهرهبرداری کنند. یکی از راههای اصلی برای بهبود امنیت سایتهای وردپرسی، مخفی کردن و تغییر آدرس پیشفرض صفحه ورود به مدیریت است.
به صورت پیشفرض، آدرس ورود به مدیریت وردپرس از طریق مسیرهای `/wp-admin/` و `/wp-login.php` قابل دسترسی است. این آدرسهای شناختهشده میتوانند هدف حملات بروتفورس و تلاشهای ناموفق ورود قرار گیرند. بنابراین، تغییر این آدرسها و جلوگیری از دسترسی به آنها میتواند به کاهش احتمال حملات و بهبود امنیت کلی سایت کمک کند.
در این مقاله، به بررسی نحوه تغییر آدرس ورود به مدیریت وردپرس پرداخته و کدی را معرفی خواهیم کرد که با استفاده از آن، کاربران و رباتهایی که قصد دسترسی به آدرسهای پیشفرض را دارند، به صفحه اصلی سایت هدایت میشوند. این اقدام ساده، میتواند به شما کمک کند تا سطح امنیت سایت خود را بهطور قابلتوجهی افزایش دهید و از حملات مخرب جلوگیری کنید.
آموزش تغییر لینک ورود مدیریت به مدیریت سایت
برای انجام این کار، میتوانید کد زیر را به فایل functions.php
قالب فعال خود اضافه کنید. این کد به گونهای طراحی شده است که وقتی کاربر سعی میکند به /wp-admin/
یا /wp-login.php
دسترسی پیدا کند، به صورت خودکار به صفحه اصلی سایت شما ریدایرکت شود. فقط مسیر جدید ورود را به صورت دستی وارد میکنید و هیچ گونه صفحه لاگین از طریق آدرسهای پیشفرض نمایش داده نمیشود.
// Change login page add_action('init', 'redirect_login_and_admin'); function redirect_login_and_admin() { // مسیر جدیدی که برای صفحه ورود میخواهید استفاده کنید $new_login_url = '/vorod'; // اگر آدرس درخواست شده wp-login.php یا wp-admin بود و کاربر وارد نشده بود if ((strpos($_SERVER['REQUEST_URI'], 'wp-login.php') !== false || strpos($_SERVER['REQUEST_URI'], 'wp-admin') !== false) && !is_user_logged_in()) { wp_redirect(home_url()); // ریدایرکت به صفحه اصلی exit; } // اگر کاربر به مسیر جدید ورود درخواست داد if ($_SERVER['REQUEST_URI'] == $new_login_url) { require_once ABSPATH . 'wp-login.php'; exit; } }
توضیحات کد
$new_login_url = '/vorod';
- این خط مسیر جدیدی را که برای ورود میخواهید استفاده کنید، تعریف میکند. شما میتوانید آن را به هر چیزی که دوست دارید تغییر دهید، مثلاً
/custom-login
.
- این خط مسیر جدیدی را که برای ورود میخواهید استفاده کنید، تعریف میکند. شما میتوانید آن را به هر چیزی که دوست دارید تغییر دهید، مثلاً
if (strpos($_SERVER['REQUEST_URI'], 'wp-login.php') !== false || strpos($_SERVER['REQUEST_URI'], 'wp-admin') !== false)
- این شرط بررسی میکند که آیا کاربر سعی دارد به
/wp-login.php
یا/wp-admin
دسترسی پیدا کند یا خیر. اگر چنین باشد و کاربر هنوز وارد نشده باشد (!is_user_logged_in()
)، او به صفحه اصلی سایت (home_url()
) ریدایرکت میشود.
- این شرط بررسی میکند که آیا کاربر سعی دارد به
if ($_SERVER['REQUEST_URI'] == $new_login_url)
- اگر کاربر به مسیر جدیدی که برای ورود تعریف کردهاید (مثلاً
/vorod
) دسترسی پیدا کند، صفحه ورود استاندارد وردپرس نمایش داده میشود.
- اگر کاربر به مسیر جدیدی که برای ورود تعریف کردهاید (مثلاً
wp_redirect(home_url());
- این تابع کاربر را به صفحه اصلی سایت ریدایرکت میکند.
نتیجه نهایی
پس از اعمال این تغییرات:
- اگر کسی سعی کند به
/wp-admin
یا/wp-login.php
دسترسی پیدا کند و وارد نشده باشد، مستقیماً به صفحه اصلی سایت ریدایرکت میشود. - تنها راه دسترسی به صفحه ورود از طریق مسیر جدیدی است که شما تعریف کردهاید (مثلاً
/vorod
).
نکات مهم
- یادآوری آدرس ورود جدید: حتماً مسیر جدید ورود را به خاطر بسپارید و آن را با سایر مدیران سایت به اشتراک بگذارید.
- پشتیبانگیری: قبل از اعمال تغییرات، یک نسخه پشتیبان از سایت تهیه کنید.
- امنیت: این کار سطح امنیت سایت شما را افزایش میدهد، اما استفاده از روشهای امنیتی دیگر مثل احراز هویت دومرحلهای و پلاگینهای امنیتی نیز توصیه میشود.
6 پاسخ
سلام وقت شما بخیر ، این کد دقیقاً زدم ولی عمل نکرد و وارد صفحه نام کاربری و رمز عبور نمی شود
درود وقتتون بخیر
مجدد کدها تست شد، مشکلی مشاهده نشد!
توجه داشته باشید که عبارت پیشفرض داخل کدها “vorod” میباشد و شما هنگام ورود به پیشخوان مدیریت سایت، بعد از آدرس سایتتون، عبارت vorod را باید وارد کنید. برای مثال: example.com/vorod
در صورت تمایل میتوانید این عبارت را در خط ششم کدها تغییر دهید. دقت داشته باشید / قبل از عبارت موردنظرتان قرار گیرد.
همچنین اگر افزونه امنیتی روی سایت نصب هست جهت تست درست کار کردن کدها موقتا آن را غیرفعال کنید.
موفق باشید
سلام کد میزنم ادرس ورود به سایت عوض میکنه ولی وقتی نام کاربری و رمز میزنم ورود نمیکنه به پیشخوان ورپرس
درود وقت بخیر
این کد تغییری در اطلاعات ورود اعمال نمیکنه، فقط لینک ورود رو تغییر میده.
اگر از افزونههای امنیتی روی سایت استفاده میکنید موقتا اون رو غیرفعال و مجدد تست کنید چون باعث تداخل میشه.
همچنین اگر خطایی نمایش میده لطفا ارسال کنید در ادامه همین نظرات تا بررسی کنیم.
در نهایت اگر نتیجه نگرفتین، حالت دیباگ وردپرس رو فعال کنید و چک کنید ببینید مشکل کجاست.
روی لوکال کار نمیکنه درسته؟
درود
ربطی به نوع هاست نداره، در هر صورت کد کار میکنه