#1: Надежные логин и пароль
Не используйте стандартный логин - admin при входе в админку, переименуйте его на другое имя, ведь именно к этому имени пользователя злоумышленники будут подбирать пароль в первую очередь.
Рекомендуется вообще не использовать имя пользователя в качестве логина, т.к. его можно легко узнать, тем более если имя пользователя отображается у вас на сайте. Для авторизации желательно использовать только email-адрес к которому привязан WordPress. В этом вам помогут плагины из каталога WordPress, просто введите в поисковой строке - "email auth".
Используйте сложный пароль состоящий не менее чем из 16 символов, содержащий цифры, буквы в разном регистре, подчеркивания и прочие знаки. При создании пароля старайтесь избегать словарных слов.
Стоит также позаботится о надежности пароля для учетной записи вашего сервера, FTP-аккаунта и базы данных и прочих зависимых сервисов и приложений.
#2: Работайте с сайтом только на надежном компьютере
Регулярно проверяйте свой компьютер на наличие вирусов, шпионов, кейлоггеров и прочую малварь, которая может украсть ваши данные от сайта. Не рекомендуется использовать чужие компьютеры, безопасность которых может быть под сомнением, например в интернет кафе.
#3: Регулярные обновления движка, плагинов, тем...
Следите за всеми обновлениями касающиеся WordPress. Не ленитесь сразу обновлять темы и плагины как только обновления стали доступны. В обновлениях могут содержаться различные патчи для найденных уязвимостей в темах, плагинах, а также самого движка. Регулярно обновляясь вы залатываете дыры, используя которые злоумышленники могут навредить вам.
WordPress начиная с версии 3.7 сам обновляет свое ядро, если сервер это позволяет.
#4: Удалите неиспользуемые плагины и темы
Если вы не пользуетесь какими либо плагинами или темами, то рекомендуется их удалить, т.к. в них могут содержаться различные уязвимости.
#5: Не устанавливайте подозрительные темы и плагины
Перед тем как установить интересующий вас плагин или тему убедитесь в их безопасности.
- Просмотрите все отзывы других пользователей.
- Проверьте не забросил ли автор свое решение, посмотрите на дату последнего обновления.
- Рекомендуется скачивать бесплатные темы и плагины с сайта wordpress.org, т.к. там за их безопасность отвечают модераторы.
#6: Ограничьте права редакторов сайта
Если к сайту имеют доступ несколько человек, то имеет смысл ограничить их возможности в системе в соответствии с их ролями.
Так, если пользователю нужно лишь публиковать новые записи, то присвойте ему права автора. Если есть необходимость править записи других пользователей, виджетами и настройками темы, используйте роль редактора.
#7: Двухфакторная идентификация и captcha при входе в админку
Используйте двухфакторную аутентификацию (2FA) на странице входа. При входе в панель администрирования WordPress попросит вас ввести дополнительный код, который будет выслан вам на телефон. Этот код меняется каждую минуту.
Не забудьте записать и надежно сохранить резервные коды, которые могут пригодится при потере или недоступности телефона
Также установите капчу на саму форму входа.
Будьте внимательны при установки плагинов с recaptcha, т.к. они могут некорректно работать. Поэтому после их установки и активации, не выходя из панели администрирования, зайдите на страницу входа в админку в другом браузере и убедитесь, что при входе никаких проблем не возникает.
Проще всего сделать двухфакторную аутентификацию и капчу при помощи плагинов.
В каталоге плагинов WordPress есть немало тех, что предлагают комплексную защиту, в которую уже входят капча и 2FA.

#8: Ограничьте количество попыток входа в админку
Помимо использования капчи, защитить форму входа от перебора (брутфорса) можно также путем ограничения попыток набора логина и пароля. Добиться этого можно установив один из плагинов из каталога WordPress.org, например простой в настройке плагин Limit Login Attemps Reloaded.

#9: Ограничения в файле wp-config.php
Следующие директивы приводят к соответствующему регулировании привилегий на уровне конфигурации WordPress. При желании вы можете разместить все или несколько директив в конце файла wp-config.php ограничив тем самым возможности всех пользователей в панели администрирования.
Запрет публикации неэкранированного HTML-кода.
define( 'DISALLOW_UNFILTERED_HTML', true );
Запрет редактирования файлов в панели администратора. Убирает поле "Редактор" в меню панели. Этот способ поможет защитить ваш сайт когда злоумышленник все же сумел получить доступ к панели администрирования, т.к. он не сможет исполнять никакой вредоносный PHP-код и изменять тему вашего сайта.
define( 'DISALLOW_FILE_EDIT', true );
Запрет на любое редактирование файлов движка из панели администрирования. Эта директива не позволит как либо изменять файлы в файловой системе WordPress (кроме директории загрузок wp-content/uploads), что приведет к невозможности установки и обновлении плагинов и тем для вашего сайта. Вам придется делать это вручную через FTP или SSH.
define( 'DISALLOW_FILE_MODS', true );
Доступ к правке файлов только по FTP.
define('FS_METHOD', 'ftpext');
Если ваш сервер поддерживает FTPs (FTP поверх SSL), то добавьте также следующую директиву.
define('FTP_SSL', true);
Если ваш сервер поддерживает SFTP (передача файлов по SSH). Изменение любых файлов в этом случае будет доступно только по SFTP.
define('FS_METHOD', 'ssh2')
#10: Измените права доступа для файла wp-config.php
Установите права записи файла wp-config.php только для его владельца (веб-сервера), чтобы никто из других пользователей не мог его изменить. Установите следующие биты доступа "400".
chmod 400 /var/www/example.ru/www/wp-config.php
#11: Регулярные резервные копии сайта и БД
Даже если ваш сайт взломали и нанесли ему серьезный ущерб, то не придется сильно беспокоиться если у вас будет свежая резервная копия всей папки сайта и его базы данных, из которых можно восстановить прежний вид сайта.
Делайте резервные копии сайта и БД с частой и постоянной периодичностью, а также надежно их храните, чтобы всегда иметь под рукой свежую копию сайта. Храните резервные копии сайта не только на своем хостинге, но и локально.
#12: Спрячьте версию WordPress
Если вы откроете HTML-код в инструментах для разработчика, то можете увидеть мета тег с именем - "generator", в котором указана текущая версия движка WordPress.
<meta name="generator" content="WordPress 4.9.8" />

Информация о версии движка сильно поможет злоумышленникам, т.к. они будут знать какие именно уязвимости в данной версии, они могут эксплуатировать.
Убрать версию из кода можно с помощью все тех же плагинов безопасности, или просто воспользоваться функцией ниже.
Поместите данный код в конец файла functions.php
.
1 2 |
function wp_remove_version() {return '';} add_filter('the_generator', 'wp_remove_version'); |
Версию также можно узнать в файле readme.html. Этот файл нужно удалить сразу после установки WordPress.
13#: Измените префикс wp_ для базы данных
В момент установки WordPress обратите внимание на префикс базы данных, по умолчанию предлагается префикс wp_
. Рекомендуется изменить префикс на более сложный, т.к. если ваша база данных подвергнется SQL-инъекции, то в первую очередь злоумышленники будут обращаться к таблицам с префиксом wp_
.

Чтобы изменить префикс для базы данных с уже установленным WordPress, воспользуйтесь материалом данной статьи.