Привет, друзья!
В этот статье разберем как обезопасить сайт на Wordpress и запретить посторонним пользователям заходить на страницу входа в админ панель.
Почему это сделать нужно?
Я подобрал сложную пару логин-пароль, но из-за того что адрес страницы входа в админ панель знали все, злоумышленники постоянно пытались войти в админку. Антивирус отправлял письма об атаках каждый день. Я понял что адрес страницы для входа нужно менять.
В чем суть?
Старый файл входа в админ-панель скопируем, заменим данные, переименуем и загрузим обратно. Название будущего файла — адрес для входа в админ панель. После этого сделаем так чтобы по wp-admin, wp-login.php нельзя было зайти на сайт.
Это была карта статьи, теперь подробнее о каждом шаге.
Вам нужно зайти на ваш сайт через файловый менеджер или через ftp-соединение. В корне сайта найдите файл wp-login.php
Скопируйте его себе на компьютер или продублируйте в той же папке.
Теперь открывайте файл в своем редакторе. Нам необходимо заменить строки wp-login на имя, которое будет названием страницы входа в админ панель.
Если вы хотите входить, а админку по адресу yousite.ru/mygrandmother, wp-login нужно менять на mygrandmother
Теперь нужно заменить их на наше название, в данном случае mygrandmother
Заменили? Молодцы 🙂
Теперь переименуем файл, который редактировали в mygrandmother. php
Заходим на сайт чтобы проверить работу нашей новой страницы.
Готово! Теперь любопытные носы вряд-ли будут околачиваться на этой странице. Они попросту не догадаются об ее названии.
Что мы сделали?
- Откопировали файл wp-login.php. В копии заменили wp-login на mygrandmother.
- После замены переименовали файл в mygrandmother. php
Вместо mygrandmother можете использовать любое имя, которое вам по душе.
Что дальше?
/mygrandmother.php работает, но по адресам wp-admin, wp-login все еще можно зайти. Нам нужно сделать перенаправление (редирект) с этих страниц на главную страницу.
Для добавления редиректа нам нужно найти файл functions. php в теме сайта.
Все темы сайта лежат по адресу: ваш-сайт.ru/wp-content/themes/
Открываем файл function. 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( '/404/' ) );
exit;
}
}
Код для редиректа с wp-login.php:
/* ============================
Редирект с wp-login.php
=========================== */
add_action('init','redirect_login_page');
function redirect_login_page() {
$page_viewed = basename($_SERVER['REQUEST_URI']);
$result = strpos($page_viewed, 'wp-login.php');
if($result !== false) {
wp_redirect( home_url( '/404/' ) );
exit;
}
}
Заменяем все ссылки с wp-login на нашу страницу
/* ============================
Смена адресов на новый
=========================== */
add_filter('site_url', 'wplogin_filter', 10, 3);
function wplogin_filter( $url, $path, $orig_scheme ) {
$old = array( "/(wp-login.php)/");
$new = array( "mygrandmother.php");
return preg_replace( $old, $new, $url, 1);
}
Вот что получилось в итоге:
/* ============================
Редирект с 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( '/404/' ) );
exit;
}
}
/* ============================
Редирект с wp-login.php
=========================== */
add_action('init','redirect_login_page');
function redirect_login_page() {
$page_viewed = basename($_SERVER['REQUEST_URI']);
$result = strpos($page_viewed, 'wp-login.php');
if($result !== false) {
wp_redirect( home_url( '/404/' ) );
exit;
}
}
/* ============================
Смена адресов на новый
=========================== */
add_filter('site_url', 'wplogin_filter', 10, 3);
function wplogin_filter( $url, $path, $orig_scheme ) {
$old = array( "/(wp-login.php)/");
$new = array( "mygrandmother.php");
return preg_replace( $old, $new, $url, 1);
}
Если вы поменяете тему, перенаправления не будет, так как файл functions. php будет другой. Чтобы все работало в новой теме, нужно перенести код редиректа.
Теперь на страницу входа в админ панель можно будет зайти только по адресу mygrandmother. C wp-admin и wp-login нас будут переводить на главную страницу.
Канал о фрилансе
Там я делюсь фишками о фрилансе: деньги, клиенты, автоматизация, фриланс. Раньше это был закрытый материал с платным доступом. Сейчас он открыт. Иногда подписчикам будет открываться платные материалы. Подписаться