Взлом админки WordPress является наиболее неприятным событием для владельца сайта, так как напрямую передаёт контроль над проектом злоумышленнику. И сегодня я покажу, как защитить свой сайт от этой опасности.
К сожалению, стандартная конфигурация WordPress не защищена от простого перебора логинов и паролей. Поэтому хакерские боты просто переходят по адресу атакуемый-сайт.ru/wp-login.php и начинают автоматический перебор.
Даже если вы используете очень сложный пароль, рано или поздно он может быть найден, плюс ко всему каждый запрос бота заставляет сервер выполнять ряд скриптов, сверяющих введенные данные с базой, что создает немалую нагрузку и может привести к подвисанию сайта или к превышению разрешенной хостинг-провайдером нагрузки на сервер.
Решается задача в 2 шага:
- Изменение стандартного адреса админки WordPress на произвольный, известный только вам.
- Запрет доступа к сайту всем, кто пытается открыть стандартную страницу входа в админку, им выдаем 403 ошибку (Forbidden).
Первый шаг повысит безопасность, а второй избавит от лишней нагрузки на сервер.
Как изменить адрес админки WordPress
За вход в панель администратора отвечает файл wp-login.php, он находится в корневой директории сайта.
Нам нужно взять этот файл и создать копию с другим именем, используя произвольный набор символов, чем более загадочным будет новое название, тем меньше шансов на взлом.
Например, назовем файл wp-biznessystem-ru-SDF54-login.php.
Не удаляйте стандартный файл, так как без него не будет работать кнопка «Выход» из админ панели.
Чтобы новая страница входа в админку заработала, в самом файле необходимо провести корректировку.
Можете править прямо на сервере, но удобнее скачать на компьютер и работать с текстовым редактором Notepad++ (или другим, привычным вам).
Найдите внутри и замените все названия старого файла (wp-login.php) на новое (в примере wp-biznessystem-ru-SDF54-login.php).
Должно получиться 13 изменений.
Теперь сохраняем этот файл, возвращаем на хостинг и пробуем открыть админ панель по новому адресу.
Проверили, измененная страница входа работает, переходим к следующему шагу.
Как убрать доступ к стандартной админ панели
Теперь нам надо правильно отключить старую админ панель. Если просто удалить wp-login.php на хостинге, как я сказал выше, перестанет работать выход из админки, а это плохо, особенно, если вы пользуетесь общественным компьютером для работы с сайтом.
Кроме того, обращение к несуществующему файлу будет отдавать 404 ошибку (файл не найден). Роботу страницы 404 не нужна, а так как она является полноценной страницей сайта с большим объемом кода и, возможно, прикрученными скриптами и картинками – их отдача боту взломщику будет нагружать сервер.
Правильный подход — отдать 403 код с запретом доступа – это наименее ресурсозатратный серверный ответ, только его заслуживают хакеры.
Для реализации данной задачи используем файл htaccess (он лежит в корневой директории сайта), в самом начале файла вставляем следующий код:
# Смена админки RewriteEngine on RewriteCond %{REQUEST_URI} /wp-login.php.*$ [NC] RewriteCond %{QUERY_STRING} !action=logout.* [NC] RewriteRule ^(.*)$ - [F,L]
Скрипт выдает запрет доступа на любой запрос адресованный файлу wp-login.php, за исключением параметра logout (выход из адмики).
Хакеры будут получать 403 ошибку при попытке попасть в админ панель.
Особенность, с которой столкнетесь после изменения адреса админки
Когда мы выходим из панели управления, через кнопку «Выйти», сайт обращается к тому же самому файлу wp-login.php, а так как доступ к нему заблокирован для всех пользователей, нажатие кнопки выхода будет приводить к появлению страницы запрета доступа (403 Forbidden), а не к переходу на страницу авторизации.
Это никак не влияет на работоспособность сайта в других аспектах.
На этом закончим. Надеюсь, с переименованием админки ваша вебмастерская жизнь станет проще, так как отпадет проблема взлома, и будет время с головой окунуться в более интересные дела.