اگه از هر متخصص امنیت یا توسعهدهنده وردپرس بپرسی اولین اقدام امنیتی که بعد از راه انداختن سایت انجام میدی چیه؟ قطعا بهت میگه: «تغییر دادن آدرس ورود سایت».
چرا؟ چون همه دنیا میدونن که برای ورود به یک سایت وردپرسی، کافیه آخر آدرسش یه wp-admin یا wp-login.php اضافه کنن. این یعنی هکرها و رباتهای مخرب، نصف راه رو برای هک کردن سایت شما بلدند!
خیلی از دوستان برای حل این مشکل سراغ نصب افزونههای امنیتی سنگین مثل iThemes Security یا افزونههای دیگه مثل WPS Hide Login میرن. اما نصب افزونه برای کاری که میشه با چند خط کد ساده و تمیز انجامش داد، چندان بهینه نیست!
در این مقاله میخوایم اصولی و با چندخط کد، آدرس ورود به پیشخوان وردپرس رو تغییر بدیم 🙂 همراه مسترباینری باشید.
قبل از اینکه بخوایم چگونگی تغییر آدرس رو بگیم، اول بیایم بررسی کنیم که اصلا چرا باید چنین کاری انجام بدیم؟ فایده اش چیه؟
ببینید، هکرها معمولا وقتشون رو برای حدس زدن پسوردهای شما به صورت دستی هدر نمیدن.یعنی یکی یکی تست نمیکنن.
اونا یک سری رباتهایی دارن که 24 ساعته توی آدرس wp-login.php سایتهای وردپرسی درخواست میفرستن تا با متد Brute Force (تست هزاران رمز عبور در چند ثانیه) بالاخره راهی پیدا کنند.
وقتی میایم و این آدرس رو تغییر میدیم، 2 جنبه ی بسیار مثبت داره:
1. هکر وقتی به آدرس پیشفرض میره، با خطای 404 مواجه میشه و صفحهای پیدا نمیکنه که حملاتش رو انجام بده.
2. با تغییر آدرس این صفحه، جلوی ترافیک فیک گرفته میشه و منابع هاست خصوصا RAM و CPU هدر نمیره.
کد تغییر آدرس ورود وردپرس
مراحل زیر را انجام دهید:
1. به پنل مدیریت وردپرس بروید.
2. از قسمت نمایش وارد ویرایشگر پوسته شوید.
3. فایل functions.php قالب خود را باز کنید. (ترجیحا از نسخه فرزند قالب یا همان چایلدتم استفاده کنید.)
4. کد زیر را در انتهای فایل functions.php قرار دهید:
/**
* تغییر آدرس ورود وردپرس بدون افزونه - اختصاصی مستربینری
* Compatible with PHP 8.1+ and WordPress Core Standards
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// تعریف کلید اختصاصی برای ورود (کلمه ی mycustomlogin در خط زیر را حتما عوض کنید)
define( 'MY_SECRET_LOGIN_KEY', 'mycustomlogin' );
add_action( 'init', 'mrbinary_restrict_wp_login' );
function mrbinary_restrict_wp_login() {
global $pagenow;
if ( 'wp-login.php' === $pagenow && ! isset( $_GET[ MY_SECRET_LOGIN_KEY ] ) ) {
if ( empty( $_POST ) ) {
wp_safe_redirect( home_url( '/404' ) );
exit;
}
}
}
add_filter( 'login_url', 'mrbinary_custom_login_url', 10, 3 );
function mrbinary_custom_login_url( $login_url, $redirect, $force_reauth ) {
$login_url = site_url( 'wp-login.php?' . MY_SECRET_LOGIN_KEY, 'login' );
if ( ! empty( $redirect ) ) {
$login_url = add_query_arg( 'redirect_to', urlencode( $redirect ), $login_url );
}
return $login_url;
}یک کلمه دلخواه (Secret Key) مثل mycustomlogin تعریف کردیم. در ادامه کد چک میکنه که اگر کسی خواست وارد صفحه wp-login.php بشه، بفرستتش به صفحه 404 سایت.
بنابراین به جای mycustomlogin نام دلخواه خودتون رو در کد بالا قرار بدید و ذخیره کنید.
حالا آدرس ورود به سایت شما به این شکل خواهد بود:
https://your-site.com/wp-login.php?mycustomlogin
هر وقت پشیمون شدید و خواستید آدرس ورود دوباره به حالت پیشفرض برگرده و یا حتی فراموش کردید آدرس ورود چی بوده، اصلا هل نکنید.
کافیه برید داخل هاست و در مسیر زیر فایل functions.php رو ویرایش کنید:
/wp-content/themes/child-theme/
کدهایی که اضافه کرده بودید حذف کنید و فایل رو ذخیره کنید.
همه چیز به حالت اول برگشت.
امیدوارم این مطلب براتون مفید بوده باشه.
موفق باشید

