Как защитить сайт на WordPress от взлома

Свободная платформа управления содержимым сайта WordPress сейчас находится на пике популярности. В то же время она является лакомым кусочком для хакеров и часто подвергается взломам. Как по максимуму обезопасить сайт, развернутый на этой CMS? Даем пошаговую инструкцию.
Регулярно обновляем ПО
Чтобы заблокировать доступ вредоносным программам, нужно использовать актуальную версию WordPress. Обновлять ПО на данный момент можно только вручную. Хотя в последних версиях реализована функция автоматического обновления, она применяется только для небольших обновлений.
Используем нестандартные учетные записи пользователей
По умолчанию в WordPress дается имя учетной записи admin. Но такое положение дел увеличивает шансы хакеров получить доступ к сайту. Поэтому рекомендуется сменить имя пользователя администратора на любое другое или создать новую учетную запись с новыми данными.
Чтобы создать нового пользователя, необходимо:
– войти в админпанель WordPress;
– в разделе “Пользователи” нужно выбрать меню “Добавить нового”;
– создать нового юзера с правами администратора;
– удалить учетную запись Администратора, созданную ранее.
Отключаем возможность отправки отчетов об ошибках PHP
Это может пригодиться при разработке сайта для того, чтобы удостовериться, что все работает правильно. В остальных случаях в этом нет необходимости. Чтобы отключить отчеты об ошибках PHP, нужно добавить такие строки в файл wp-config.php:
error_reporting(0) @ini_set(‘display_errors’, 0)Для редактирования файла можно использовать файловый менеджер или FTP-клиент.
Уменьшаем количество неудачных попыток авторизации
По умолчанию в WordPress не ведется статистика как удачных, так и неудачных авторизаций. То есть, администратор не может узнать, были ли попытки несанкционированного доступа к ресурсу и принять необходимые меры.
Для этого необходимо установить плагины Login LockDown и Limit Login Attempts. Они ведут статистику авторизаций, но и после определенного количества попыток залогиниться, блокируют IP-адрес пользователя.
Используем .htaccess для обеспечения максимальной защиты
Важно! Перед внесением изменения в файл .htaccess необходимо делать резервное копирование, чтобы в случае чего можно было вернуть систему в состояние до внедрения изменений. Это можно сделать с помощью файлового менеджера или FTP клиента.
.htaccess – конфигурационный файл, который отвечает за корректную работу ссылок WordPress. Однако его можно использовать и в целях безопасности, например, для ограничения доступа к админке – только с определенных IP-адресов. Для этого нужно прописать вот такой скрипт
AuthUserFile /dev/null AuthGroupFile /dev/null AuthName "WordPress Admin Access Control" AuthType Basic <LIMIT GET&gt> order deny,allow deny from all allow from xx.xx.xx.xxx allow from xx.xx.xx.xxx <LIMIT>Хх.хх.хх.ххх нужно заменить на соответствующий IP. Если используется более одного подключения для сайта на WordPress, необходимо указывать их все. Этот код не рекомендуется использовать для динамических IP адресов.
Чтобы обезопасить ядро WordPress, файл wp-config.php, нужно прописать в .htaccess такие правила
<files wp-config.php order allow,deny deny from all <files>Еще один способ обеспечить безопасность WordPress площадки – отключение выполнения PHP-скриптов в конкретных папках. Чаще всего эта опция применяется для папки загрузок, которая по умолчанию используется для хранения медиафайлов. Соответственно в ней не должны содержаться файлы в формате PHP. Чтобы отключить выполнение PHP, нужно создать в /wp-content/uploads/ новый файл .htaccess, указав такие правила
<Files *.php> deny from all <Files>Работаем над базой данных, чтобы предотвратить внедрение SQL-кода
база данных, как и конфиг .htaccess, является еще одной мишенью для злоумышленников, ведь там хранится вся необходимая информация для полноценной работы сайта. Чтобы обезопасить базу данных, сперва нужно изменить таблицу префиксов для нашего сайта на WordPress.
Для этого в файле wp-config.php c помощью менеджера файлов или FTP клиента нужно найти строку, где будет указано значение
После wp можно добавить различные символы: буквы, цифры или нижнее подчеркивание. Мы добавим _1secure_1, создав новый префикс таблицы. В файле wp-config.php в разделе define(‘DB_NAME’ ищем имя нашей базы данных.
Далее с помощью phpMyAdmin полностью обновляем базу данных. По умолчанию база данных в WordPress состоит из 12 таблиц. Для автоматического обновления используем синтаксис
RENAME table `wp_commentmeta` TO `wp_1secure1_commentmeta`; RENAME table `wp_comments` TO `wp_1secure1_comments`; RENAME table `wp_links` TO `wp_1secure1_links`; RENAME table `wp_options` TO `wp_1secure1_options`; RENAME table `wp_postmeta` TO `wp_1secure1_postmeta`; RENAME table `wp_posts` TO `wp_1secure1_posts`; RENAME table `wp_terms` TO `wp_1secure1_terms`; RENAME table `wp_termmeta` TO `wp_1secure1_termmeta`; RENAME table `wp_term_relationships` TO `wp_1secure1_term_relationships`; RENAME table `wp_term_taxonomy` TO `wp_1secure1_term_taxonomy`; RENAME table `wp_usermeta` TO `wp_1secure1_usermeta`; RENAME table `wp_users` TO `wp_1secure1_users`;Есть сайты, где количество таблиц в MySQL превышает 12. В таком случае их нужно добавить вручную.
Важно! Прежде чем вносить изменения, необходимо сделать бэкап базы данных MySQL.
Завершающий штрих – проверка опций и таблиц с метаданными
В зависимости от количества установленных плагинов некоторые значения в базе данных нужно обновлять вручную – путем выполнения отдельных SQL-запросов на таблицу опций и метаданных.
Для таблицы опций используем
SELECT * FROM `wp_1secure1_options` WHERE `option_name` LIKE '%wp_%'Для таблицы метаданных соответственно
SELECT * FROM `wp_1secure1_usermeta` WHERE `meta_key` LIKE '%wp_%'После получения результатов запроса нужно обновить все значения с wp_ на наш новый префикс. В таблице опций меняем значение option_name, в файле с метаданными – поле meta_key.
Мы разобрали основные приемы, которые ограничат доступ злоумышленникам в админпанель WordPress. В завершение добавим, что еще одним важным условием для обеспечения безопасности является скачивание тем и плагинов с надежных ресурсов. Хотите знать больше о том, как предотвратить взлом сайта на WordPress, записывайтесь на наш курс «L2-Security. Безопасность в Linux»!