Защита сайта на Вордпресс- закрываем wp-login.php

WordPress, конечно, хороший движок, но он также очень популярен у хакеров, взламывающих чужие сайты.

Недавно я обнаружил существенное увеличение нагрузки на хостинг, где хранятся несколько моих сайтов. Просмотр логов обращений показал, что по сайтам идут непрерывные обращение к файлам wp-login.php. Это файл, с помощью которого мы авторизуемся на сайте.

Такие данные в логах означают, что какие-то злоумышленники пытаются подобрать логин/пароль от административной панели сайта. Но помимо риска взлома, такие обращения создают еще и высокую нагрузку на хостинг, в результате чего замедляется работа самих сайтов.

Закрыть wp-login.php можно вручную через код или с помощью плагинов.

Закрываем wp-login.php через код

Надо учесть, что мы здесь меняем только имя файла php, для защиты от тех, кто напрямую обращается к этому файлу. При этом остается возможность входа через стандартный адрес админ панели — wp-admin.

  1. Создаем копию файла wp-login.php (должен находиться в корне вашего сайта) и переименовываем его, например, в login2.php.
  2. В новом файле login2.php заменяем все вхождения wp-login.php на новое имя — в нашем случае login2.php. Новый файл нужно поместить в корень вашего сайта. Такие же замены делаем в файле wp-includes/general-template.php.
  3. Закрываем доступ к файлу wp-login.php в файле .htaccess

Для этого добавляем в .htaccess следующие строчки:

Можно, конечно, просто удалить wp-login.php, тогда сервер будет возвращать ответ 404 (страница не существует). Однако это тоже создает нагрузку на сайт. Закрывая доступ к файлу в .htaccess мы существенно снижаем нагрузку на сервер.

После из изменения версии WP, скорее всего, нужно будет повторить описанный процесс, поскольку в новой версии может измениться его содержимое.

Теперь доступ к админ. панели сайта можно произвести только через файл login2.php (то есть набрав в браузере строку — http://ваш_сайт/login2.php).

Дополнительно стоит добавить следующий код в function.php (в папке вашей темы). Этот код обеспечит правильную работу с виджетами, использующими вход и выход WP . Обратите внимание, что вместо имени файла login2.php вы должны использовать имя своего нового файла входа в админ. панель.

Используем плагины

Чаще всего изменить страницу входа проще и удобнее через подходящий плагин. Перечислю несколько:

  1. WPS Hide Login — позволяет легко изменить адрес страницы авторизации;
  2. WP Hide & Security Enhancer — кроме страницы входа, умеет скрывает файлы ядра Вордпресс, пути к плагинам и темам;
  3. WP Cerber Security, Anti-spam & Malware Scan — это целый комбайн по защите сайта со множеством функций.

Также есть плагины, позволяющие ограничить количество попыток авторизации на сайте, например Limit Login Attempts.

Вы можете заказать любые услуги по созданию сайта на Wordpress или доработке сайта Wordpress.
Оцените статью
Делаем сайт своими руками
Комментарии: 6
  1. alex

    то есть после обновления движка, не нужно заново делать всю эту процедуру?

    Ответить
  2. Ложников Андрей (автор)

    alex, конечно, здесь нужно добавить, что при обновлении версии движка, ваш измененный файл login.php может перестать работать и нужно проделать эту процедуру заново.

    Ответить
  3. yawll

    alex, вы пишете об изменениях только в двух файлах, поиск в файловом менеджере выдал обращение к wp-login в большем числе файлов, в корневом, и в директории контента, и в инклюдах. Изменения во всех не дестабилизирует сайт?

    Ответить
  4. Ложников Андрей (автор)

    yawll, изменения не дестабилизируют сайт. У меня такое на многих сайтах работает. Обычно достаточно внести изменения в wp-login.php и htaccess и сайт будет работать.

    Ответить
  5. yawll

    если заменить только в указанных в статье файлах, получается ерунда. не получается даже выйти, перелогиниться для проверки. нужно или менять все встречающиеся во всех файлах упоминания о wp-login или откатываться. сервер дает 500 ошибку — не правильной настройки.

    Ответить
  6. divanoff

    при обновлении версии движка, ваш измененный файл login.php может перестать работать и нужно проделать эту процедуру заново

    Ответить
Добавить комментарии