وردپرس به خودی خود یک پلت فرم امن است، اما این موضوع باعث نمی شود که سایت شما در برابر نفوذ هکرها در امان بماند. یکی از رایجترین حملات، هکرهای انسانی یا رباتی است که سعی میکنند با استفاده از ترکیبهای مختلف نام کاربری و رمز عبور، از طریق صفحه ورود، به سیستم شما وارد شوند. برای جلوگیری از این حملات، شما می توانید تعداد تلاشهای ورود از یک آدرس IP خاص را در مدت زمان مشخصی محدود کنید. در این مقاله با آموزش روش های ایجاد محدودیت در پنل مدیریتی وردپرس همراه ما باشید.
ایجاد محدودیت در ورود به مدیریت وردپرس با افزونه Limit Login Attempts Reloaded
یکی از روش های حفظ امنیت وبسایت های وردپرس استفاده از افزونه های امنیت ودپرس است. یکی از سادهترین راه ها برای ایجاد محدودیت در ورود به پنل مدیریت وردپرس، استفاده از پلاگین «Limit Login Attempts Reloaded» است. این افزونه با شناسایی رباتها، قفل کردن کاربران پس از چندین بار تلاش ناموفق، مسدود کردن موقت آدرسهای IP و اطلاعرسانی در صورت قفل شدن کاربر به امنیت وب سایت شما میکند.
ما از این افزونه به دلایل زیر استفاده خواهیم کرد:
- به طور فعال در بیش از 2 میلیون وب سایت استفاده می شود.
- این افزونه بهروزرسانیهای منظم دریافت میکند.
- با آخرین نسخه وردپرس تست شده است.
- دارای امتیاز 4.9/5 ستاره است.
- کاملا رایگان است.
نصب افزونه Limit Login Attempts Reloaded
برای شروع کار با افزونه Limit Login Attempts Reloaded، در پیشخوان وردپرس به افزونه ها >> افزودن جدید بروید. عبارت Limit Login Attempts Reloaded را جستجو کنید. حالا کافیست دکمه نصب افزونه را بزنید. برای آشنایی با روش های نصب افزونه، مقاله چگونه افزونه وردپرس را نصب کنیم؟ را مطالعه کنید.
پس از اتمام نصب، روی “فعال سازی” کلیک کنید. پس از فعالسای افزونه در پیشخوان نمایش داده می شود.
پیکربندی افزونه Limit Login Attempts Reloaded
بر روی نام افزونه در پیشخوان کلیک کنید تا وارد صفحه تنظیمات افزونه شوید.
در سربرگ تنظیمات، میتوانید یکی بودن با GDPR را غیرفعال/فعال کنید (برای حفاظت از دادهها). همچنین، می توانید ایمیلی را که اعلان ها پس از قفل شدن به آن ارسال می شود را وارد کنید.
در بخش تنظیمات برنامه، تعیین کنید که قبل از قفل شدن کاربر، چند بار تلاش برای ورود به سیستم مجاز است. همچنین می توانید تعیین کنید که کاربر چه مدت قفل شود.
سربرگ گزارش ها، به شما امکان می دهد IP و/یا نام کاربری را که قصد دارید اجازه ورود به آن ها دهید را وارد کنید. هر IP یا نام کاربری که اجازه دهید می توانند بدون قفل شدن وارد سیستم شوند.
از طرف دیگر، هر IP یا نام کاربری که رد کنید برای همیشه قفل می شود. این امر به ویژه زمانی مهم است که متوجه فعالیت های مشکوک از یک آدرس IP می شوید.
پس از انجام تمام تنظیمات، ذخیره تغییرات را بزنید.
ایجاد محدودیت در ورود به مدیریت وردپرس بدون افزونه
اگر نخواهید از افزونه ها استفاده کنید، شما می توانید محدودیت در ورود به پنل ودپرس را به صورت دستی اعمال کنید. اما، قبل از اینکار بهتر است از وب سایت خود نسخه پشتیبان تهیه کنید.
هنگامی که آخرین نسخه پشتیبان وردپرس خود را دریافت کردید، وارد کنتل پنل وب سایت خود شوید. پوشه public_html را باز کنید. سپس، به پوشه wp-content بروید و فایل function.php را پیدا کنید. روی فایل کلیک راست کرده و گزینه edit را انتخاب کنید. وقتی باز شد کد زیر را به فایل اضافه کنید.
در این کد، کاربرانی که 3 بار تلاش ناموفق برای ورود داشته باشند (برای مدتی) قفل خواهند شد.
function check_attempted_login( $user, $username, $password ) {
if ( get_transient( ‘attempted_login’ ) ) {
$datas = get_transient( ‘attempted_login’ );
if ( $datas[‘tried’] >= 3 ) {
$until = get_option( ‘_transient_timeout_’ . ‘attempted_login’ );
$time = time_to_go( $until );
return new WP_Error( ‘too_many_tried’, sprintf( __( ‘ERROR: You have reached authentication limit, you will be able to try again in %1$s.’ ) , $time ) );
}
}
return $user;
}
add_filter( ‘authenticate’, ‘check_attempted_login’, 30, 3 );
function login_failed( $username ) {
if ( get_transient( ‘attempted_login’ ) ) {
$datas = get_transient( ‘attempted_login’ );
$datas[‘tried’]++;
if ( $datas[‘tried’] <= 3 )
set_transient( ‘attempted_login’, $datas , 300 );
} else {
$datas = array(
‘tried’ => 1
);
set_transient( ‘attempted_login’, $datas , 300 );
}
}
add_action( ‘wp_login_failed’, ‘login_failed’, 10, 1 );
function time_to_go($timestamp)
{
// converting the mysql timestamp to php time
$periods = array(
“second”,
“minute”,
“hour”,
“day”,
“week”,
“month”,
“year”
);
$lengths = array(
“60”,
“60”,
“24”,
“7”,
“4.35”,
“12”
);
$current_timestamp = time();
$difference = abs($current_timestamp – $timestamp);
for ($i = 0; $difference >= $lengths[$i] && $i < count($lengths) – 1; $i ++) {
$difference /= $lengths[$i];
}
$difference = round($difference);
if (isset($difference)) {
if ($difference != 1)
$periods[$i] .= “s”; $output = “$difference $periods[$i]”;
در نهایت تغییرات را ذخیره کنید.
یا با اضافه کردن کد زیر فقط ادمین ها می توانند به داشبورد شما دسترسی داشته باشند. همه کاربران دیگر پس از ورود به صفحه اصلی هدایت می شوند.
add_action( 'init', 'blockusers_init' );
function blockusers_init()
{ if ( is_admin() && ! current_user_can( 'administrator' ) && ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) )
{ wp_redirect( home_url() );
exit; } }
داشبورد مدیریت وردپرس کنترل پنل کل وب سایت است و شما می توانید در آن محتوا، تنظیمات، پلاگین ها، فعالیت و اساساً هر چیز دیگری را که فکرش را بکنید مدیریت می کنید. به عبارت دیگر، داشبورد شما کلید پادشاهی شماست، بنابراین باید در مورد افرادی که به آنها دسترسی می دهید دقت کنید. آیا تابحال محدودیت در ورود به مدیریت وردپرس را انجام داده اید؟ تجربیات خود را با ما در میان بگذارید.