В цій статті розкажу про безпеку сайту на WordPress. А точніше, про те, як змінити адресу сторінки входу в адміністративну панель WordPress. Це дозволить позбутися настирливих ботів, що навантажують сервер і прагнуть зламати ваш сайт. І від усіх зловмисників, які бажають заволодіти вашим сайтом.
Безпека сайту на WordPress починається з правильного налаштування доступу. Зміна логіна та пароля адміністратора, а також активація двофакторної автентифікації значно ускладнять зловмисникам доступ до вашого сайту.
Але сторінка доступу в адміністративну панель залишається доступною всім. І це дуже погано. Так як підсів на цю сторінку, з підбором паролів, злісний бот в кілька разів збільшує навантаження на сайт. При цьому залежно від вашого хостингу, сайт може впасти, і буде недоступний деякий час. Або ж взагалі буде підібрана пара логін і пароль і зловмисник зашкодить сайту.
Як змінити URL сторінки входу в адмінпанель WordPress
Для того, щоб перейти до адміністративної панелі сайту WordPress, як правило, до адреси (url) сайту додається wp-login.php.
Вид такого посилання: http://domen.com/wp-login.php.
Ввівши таку адресу, будь-хто перейде на сторінку входу в адмінпанель. І, може, методом підбору намагатися отримати доступ до сайту.
Змінюємо адресу входу в адмінпанель
Для цього нам знадобиться стандартний файл, який відповідає за виведення форми доступу до адмінпанелі: wp-login.php.
Крок 1
Для зміни адреси входу в адміністративну панель WordPress, вам знадобиться доступ до файлів вашого сайту. Ви можете отримати його через файловий менеджер хостинг-провайдера або за допомогою FTP-з’єднання. Знайдіть файл wp-login.php і завантажте його на свій комп’ютер.
Крок 2
Перейменуйте файл, ім’я підбираєте так, щоб вам було зручно використовувати його для входу в адмін панель, але при цьому воно має бути досить складним для підбору. Я, приклад, перейменував цей файл на nisenitnicsa.php (ви виберіть щось зручніше для вас).
- Відкрийте файл wp-login.php у текстовому редакторі.
- Використовуйте функцію «Пошук та заміна» (CTRL+F), щоб знайти всі входження wp-login.php.
- Замініть їх на нову назву вашого файлу (наприклад, nisenitnicsa.php) та натисніть кнопку «Замінити все». Збережіть зміни.
Усього має бути 14 замін.
Крок 3
Зберігаєте зміни у файлі. Копіюєте файл назад на хостинг. Не забудьте видалити старий wp-login.php.
Крок 4
Аналогічно, знайдіть і замініть всі входження wp-login.php на nisenitnicsa.php у файлі /wp-includes/general-template.php. Зверніть увагу, що сам файл (general-template) перейменовувати не потрібно.
Тепер доступ на сторінку входу до адмінки доступний за новою адресою: http://domen.com/nisenitnicsa.php. Але він також доступний і за старими адресами, тому потрібно ще дещо налагодити.
Доступ до адмінпанелі WordPress
CMS WordPress налаштована так що в адмінку можна потрапити за декількома адресами:
http://domen.com/wp-login.php
http://domen.com/wp-admin
Остання адреса здійснює переадресацію на http://domen.com/login.php?pass=1 і ось саме цю адресу знають і атакують злі боти.
Отже, нам потрібно не тільки змінити сторінку входу, й правильно налаштувати редиректи на стандартні адреси.
Як налаштувати редирект (перенаправлення) з wp-admin та wp-login
Для налаштування редиректу використовуватимемо файл функції теми (functions.php). Але, якщо ви зміните тему, то редирект перестане працювати. Це потрібно пам’ятати.
Відкриваєте адміністративну панель WordPress «Вигляд» -> «Редактор тем» -> «Функції теми» або «Theme Functions». Внизу цього файлу буде закінчення функції ( } ), або закриття коду php ( ?> ).
Якщо у вас закінчується файл таким символом( ?> ), значить видаляєте ці символи і вставляєте функції редиректу. Якщо файл закінчується черговою функцією, нижче цієї функції вставляєте запропоновані нижче коди.
Редирект с wp-admin:
/*редирект с wp-admin*/ 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; } }
Редирект с wp-login.php:
/*редирект с wp-login.php*/ function redirect_login_page() { $page_viewed = basename($_SERVER['REQUEST_URI']); if( $page_viewed == "wp-login.php?pass=1" ) { wp_redirect( home_url() ); exit; } } add_action('init','redirect_login_page');
Редирект при натисканні на кнопку «Вийти»:
/*редирект після виходу з адмін панелі*/ function logout_page() { $login_page = home_url( 'wp-admin' ); wp_redirect( $login_page . "?loggedout=true" ); exit; } add_action('wp_logout','logout_page');
Ще один спосіб закрити доступ до файлу wp-login.php прописати правило в файл .htaccess додавши такий код:
<Files wp-login.php> Order Deny,Allow Deny from all </Files>
Тепер можете сміливо перевіряти. Потрапити на сторінку входу та адміністративну панель ви зможете тільки за адресою домену та імені файлу, який ви створили на початку статті. У моєму випадку це nisenitnicsa.php.
Встановлюйте захист на свої сайти та спіть спокійно. Безумовно, якщо будуть питання, пишіть в коментарі, спробую допомогти.