Безопасность установки WordPress

Для того чтобы процесс установки WordPress стал более безопасным, нужно придерживаться нескольких простых вещей. Во-первых, нужно всегда проверять актуальность инсталлятора, поскольку с каждой новой версией WordPress закрывает очередные лазейки для хакеров. Во-вторых, в процессе инсталляции нужно применять сгенерированные ключи аутентификации (об этом уже говорилось ранее).

Начнем по порядку. Первое, что необходимо сделать, это проверить файл header.php на наличие в нем следующей строки:

<?php remove_action('wp_head', 'wp_generator'); ?>

Удалите эту строку. Она позволяет узнать, какую версию WordPress вы используете. Данная строка оказывается полезной как для различных ботов и пауков, собирающих статистику, так и для… хакеров, которые легко смогут подобрать нужный эксплойт, т.к. дыры, имеющиеся в той или иной версии, быстро становятся известными.

Убедитесь также в том, что в файле wp-config.php присутствуют секретные ключи. Они сделают установку более безопасной. Сгенерировать четыре ключа можно по этой ссылке: api.wordpress.org/secret-key/1.1/. Подробнее об этом было сказано ранее.

Пользователи и пароли

Первое, что необходимо сделать после установки WordPress – войти в панель управления и сменить имя администратора. По умолчанию администратору присваивается стандартное имя «admin». Взломать пароль в этом случае представляется проще простого – методом обычного перебора. Если злоумышленник получит пароль от вашей администраторской записи, он сможет сделать с сайтом все, что угодно. Вследствие этого, сменив имя администратора, можно получить уверенность в том, что по крайней мере один путь ко взлому со стороны хакеров будет отрезан.

Однако, это не гарантирует, что хакеры не смогут отыскать других пользователей с правами администратора. Если на вашем блоге присутствуют архивы пользователя, они могут вас выдать. Возможное решение – нигде не оставлять ссылок на авторский профиль (кроме тех, которые ведут за пределы WordPress), однако что делать, если без них никак не обойтись?

Этот вопрос можно разрешить следующим образом – назначить при помощи администраторской записи отдельного пользователя, от лица которого вы будете добавлять записи, редактировать их, проверять комментарии и т.д. В итоге запись администратора останется неизвестной для потенциальных взломщиков. Однако, они могут взломать и запись с правами редактора, что в худшем случае приведет к удалению всей имеющейся информации на сайте. Если вы создавали резервные копии информации, то ее всегда можно будет восстановить.

Значительно повышает безопасность сайта грамотно подобранный пароль – чем больше разнообразных символов он содержит, тем сложнее его взломать.

Работа с сервером

Пользователь, назначенный для работы с базой данных MySQL, получает все привилегии записи, которые, строго говоря, совершенно ему не нужны и лишь снижают общую безопасность сайта. Если вы немного ограничите возможности пользователя MySQL (блокировку таблиц и главной страницы, создание временных таблиц, ссылок или процедур), это никак не повлияет на вашу работу, но значительно снизит риск потерь информации в случае взлома.
Некоторые специалисты WordPress советуют создавать дополнительные логины при помощи Apache и файла .htaccess. Более продвинутые решения предлагают различные плагины, описанные далее.

Первое, что требуется сделать, это проверить, присутствует ли пустой файл index.php или index.html в каждой папке сервера. Обычно этот файл создается в WordPress по умолчанию. Он блокирует непосредственный просмотр содержимого папок, что допускается некоторыми веб-хостингами. Если в какой-либо из папок он отсутствует, необходимо его создать.

Также можно подключить возможность SSL-шифрования, которое будет осуществляться при входе в панель администратора. Это осложнит потенциальным взломщикам задачу изучения исходящего трафика, возникающего в результате каких-либо действий администратора. Для того, чтобы включить SSL-шифрование, добавьте в wp-config.php следующую строку над комментарием «That’s all, stop editing! Happy blogging»:

define('FORCE_SSL_ADMIN', true);

SSL-шифрование может не работать, если ваш хостинг не поддерживает данную функцию. Некоторые хостинги предлагают данную услугу за определенную плату.