Предисловие
Доброго времени суток, друзья. В этой статье речь пойдет о безопасности вашего сайта в интернете. Точнее говоря, я расскажу вам, как изменить страницу входа в админ. Панель WordPress. Что вам это даст? Это, как минимум, избавит вас от ботов, которые нагружают работу сервера и конечно стремятся взломать ваш сайт. Ну и от всяких плохишей, которые так и норовят завладеть вашим сайтом.
Вход в админ панель.
Для того, что бы войти в админ. Панель WordPress, как правило, к адресу (url) своего сайты вы дописываете wp-admin. Получается у вас что-то типа : http://mysite.com/wp-admin.
Введя такой адрес, абсолютно любой может перейти на страницу а админ панель и методом подбора попытаться получить доступ к вашему сайту.
Рис.1. Вход в админ панель
В интернете есть масса информации про редирект со страницы wp-admin. И достаточно много полезной информации, которая позволяет отсеивать любопытных посетителей, которые еще не знают, что вход в админ. панель осуществляется по адресу: http://mysite.com/wp-login.
Следующий скриншот нам прекрасно демонстрирует переадресацию, когда мы вводим http://mysite.com/wp-admin, а нас перекидывает на http://mysite.com /wp-login.php?pass=1 ( в моем случае url немного длиннее).
Рис. 2. Редирект wp-login.
И вот этот самый адрес, атакую боты, и в свою очередь нагружаю работу вашего сайта. Вывод, нам нужно изменить страницу входа.
Меняем страницу входа в админ панель WordPress
Для того что бы нам изменить страницу входа в админ. панель нам понадобится файол, который отвечает за вывод формы для доступа в панель. Называется он wp-login.php. Вам надо скачать через файловый менеджер или ftp. Когда мы скопировали его к себе на компьютер, нам нужно его переименовать. Подберите имя так, что бы в дальнейшем вам было удобно использовать для входа в админ. панель. Желательно что бы оно было еще довольно сложным. Я назову его 123.php (это как называть не надо).
Теперь откройте файл через редактор Notepad++, нажмите сочетание клавиш ctr+F и перейдите к закладке «заменить». В поле «найти» введите старое название файла wp-login.php , а потом в поле ниже «Заменить на» напишите новое название файла – 123.php, и нажмите кнопку «Заменить все».
Рис.3. Заменяем названия в файле wp-login.php
Всего у вас должно быть 12 замен. Потом сохраняем и закидываем файл обратно на хостинг.
Рис.4. Смотрим сколько произошло автозамен
Теперь вы можете осуществлять вход в админ панель по адресу http://mysite.com/123.php .
Но, страницы http://mysite.com/wp-admin и http://mysite.com/wp-login до сих пор доступны. А это означает, что нам нужно исключить доступ к админ. панели по старым адресам.
Настраиваем редирект (переадресацию) с wp-admin и wp-login.
Что бы по старым адресам вход в панель был не доступен и не выдавало 404 ошибку, нам нужно будет просто настроить редирект.
Для этого нам нужно открыть файл function.php.
Перед началом работы, сделайте резервную копию function.php
Открываем нашу админ. панель WordPress – «Внешний вид» — «Редактор» — «Функции темы». Пролистываете в самый низ файла. И в конце, вставляем код, который написан ниже.
Редирект с wp-admin:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
/*редирект с 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; } } |
Теперь после того, как вы вставили этот код, будет происходить переадресация с адреса с http://mysite.com/wp-admin на http://mysite.com.
Редирект с wp-login:
1 2 3 4 5 6 7 8 9 10 |
/*редирект с 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'); |
Будет аналогичный редирект с http://mysite.com/wp-login.php на http://mysite.com.
Редирект при выходе из админ. панели:
1 2 3 4 5 6 7 |
/*редирект после выхода из админ панели*/ function logout_page() { $login_page = home_url( 'wp-admin' ); wp_redirect( $login_page . "?loggedout=true" ); exit; } add_action('wp_logout','logout_page'); |
Это для того что бы при выходе зарегистрированных пользователей, в адресной строке не оставался лишний мусор.
В итоге все будет выглядеть примерно вот так.
Рис.5. Итог копирование кода в function.php
Итак, если вы все правильно сделали, как я описал выше, ПОЗДРАВЛЯЮ, теперь вы сделали ваш сайт еще более безопасным.
Удачи вам и по меньше ботов на сайте =)
Для тех, кто любит «поковыряться в движке» — самое то. У меня этот этап пройден уже и я использую мощную связку логин (нестандартный) + пассворд, сгенерированный при помощи LastPass, кстати, рекомендую. От перебора паролей есть много решений, одно из них Login Lockdown. Кстати, тоже могу порекомендовать 🙂
Спасибо большое. Обязательно рассмотрю ваши рекомендации =)
Спасибо за действенный способ! Раньше замечал кучу попыток входа ботов в админку, а сейчас всё хорошо, попыток ноль. Они просто не знают, куда теперь ломиться)) Классный у Вас блог, буду почаще заходить.
Спасибо)))
Интересный вариант, наверное, стоит попробовать, хотя для меня это немного сложновато, кодер из меня тот еще. Я одно время пробовала реализовать все это дело с перенаправлениями через плагин All In One WP Security — там все максимально просто, поставил галочку и написал новое имя страницы. но со временем начались проблемы — я и сама не могла войти. Приходилось менять браузер, какое-то время с другого входилось, потом опять не работало. В итоге вход пропадал со всех браузеров и приходилось лезть в .htaccess, искать и вырезать все установки от плагина. В итгоге намучалась и плюнула на это дело. А вот если все это прописать вручную — такая проблема может появиться?
Если всё сделать как я описал в статье, в дальнейшем никаких проблем не будет =)
Я тоже раньше использовал этот способ защиты входа в админку. Очень даже действенный способ и к тому же бесплатный. лишь нужно немного пошевелить мозгами и иметь прямые руки.
Сейчас я ушел от этого метода защиты входа в админку и использую платную версию плагина Anti-Spam by CleanTalk всего за 8$ в год. За эти небольшие деньги я полностью лишен головной боли и защищен надежно не только от спамеров и любителей взломов, разного рода ботов, но и от ДДОС атак. Советую, не пожалеете.
Спасибо за совет. Прийму его во внимание)
Просто шикарный пост, который мне очень был полезен, так как очень долго искала ответ по изменению страницы входа в админку WordPress и ответ подробный нашла здесь. Буду временами вас читать и сейчас подпишусь на рассылку.
Статья очень полезная с точки зрения безопасности блога плюс можно красиво оформить новую страницу входа, но это по моему можно так сделать до какой то версии вордпресс… Дело в том, что я когда то так уже делал так, как описано у автора, получалось очень красиво, но сейчас не получается дело в том, что открыв свой wp-login у меня не находит wp-login.php чтобы заменить их на 123.php Если кто то сталкивался подскажите… Я знаю, что можно поставить плагин, но не хочу нагружать сайт плагинами так вручную намного лучше. Если кто знает как поставить на сайт версии старше 4.5 подскажите… Спасибо
У меня сейчас версия WordPress 4.9.4 и все хорошо работает, так что могу вам смело сказать что ограничения по версии нету.
Ну все теперь разобрался, нужно обязательно скачать потому как на хостинге не находит, а когда скачиваешь находит
Не понимаю зачем столько гемора. Можно же просто переименовать wp-login.php на (ваше имя.php) затем внутри этого файла заменить все значения wp-login.php на (ваше имя.php) и в файле general-template.php сделать редирект на любую страницу, такой же заменой значения wp-login.php на нужное
Возможно можно и так, как описываете вы, нужно попробовать 🙂
Спасибо большое! Всё заработало! Статья очень помогла, оказалось изменить вход в консоль панель достаточно просто!!! ( если знаешь как ) Ваша статья помогла!!!
Спасибо 😉
А есть способы, чтобы не ковырять файлы движка. Ведь wp-login.php вернется после обновления
Хммм…не замечал что бы после обновления файлик wp-login.php обновлялся.
У меня сколько было обновлений, все окей.
по моему вы забыли про logout… надо изменить еще в general-template.php на 360-ой строке ( $logout_url = add_query_arg( $args, site_url( ‘wp-login.php?action=logout’, ‘login’ ) ); ) wp-login.php на свой 123.php а то logout не будет работать
Действительно, http://mysite.com/wp-login теперь не проходит. Однако http://mysite.com/wp-login.php остается доступным
значит где-то, что-то не так сделали. Должно вести на 404