![](https://habrastorage.org/webt/to/ix/nr/toixnrv9zg8paairpibhwgwssi0.png)
В этой статье описаны самые распространённые проблемы безопасности WordPress и способы их решения, включая советы, как избежать взлома.
Безопасность WordPress является важной темой с тех пор, как эта система управления содержимым (Content Management System или сокращённо — CMS) была выпущена в 2003 году. Как и любое популярное программное обеспечение с длинной и богатой историей, CMS WordPress также может стать целью хакеров. Вредоносные действия могут включать межсайтовые скриптовые атаки, sql-инъекции, брутфорс атаки и ряд прочих способов получения несанкционированного доступа.
По мере того как хакеры набираются опыта в поиске новых способов использования уязвимостей, WordPress-разработчики и специалисты по безопасности совершенствуются в создании сайтов, которые сложнее взломать. Есть вещи, которые разработчики и владельцы сайтов на WordPress могут предпринять в первую очередь, если они не хотят, чтобы хакеры легко смогли обойти защиту их сайтов и получить доступ к данным. Ниже мы обсудим некоторые действия, которые может предпринять администратор WordPress, чтобы его сайт не могли взломать.
Содержание
- Включите правильные разрешения на сервере для wp-config.php и .htaccess
- Используйте актуальную и безопасную версию PHP
- Отключите редактирование тем и плагинов на уровне панели администратора WordPress
- Постоянно обновляйте свои плагины WordPress
- Устанавливайте темы и плагины WordPress только из надёжных источников
- Измените wp_prefix в базе данных во время установки WordPress
- Не используйте стандартный логин «Admin». Используйте надёжные пароли
- Отключите функцию регистрации пользователей, если она вам не нужна
- Отключите комментарии, если они вам не нужны
- Настройка robots.txt для блокирования несанкционированного доступа к файлам WordPress
- Защитите себя от подбора учётных записей пользователей
- Безопасный доступ к wp-admin / wp-login.php, двухфакторная аутентификация, ограниченное количество попыток входа в систему
- Регулярно делайте резервные копии
- Скрывайте информацию об используемых вами версиях WordPress
- Блокируйте выполнение PHP-скриптов в тех WP каталогах, где это не требуется
- Отключите доступ к REST API вашего WordPress
- Ограничьте или отключите доступ к XML-RPC
- Убедитесь, что ваш сайт имеет SSL-сертификат
- Заключение
Включите правильные разрешения на сервере для wp-config.php
и .htaccess
Меняем:
644 -rw-r–r– /home/user/wp-config.php
644 -rw-r–r– /home/user/cgi-bin/.htaccess
на защищённые разрешения:
600 -rw——- /home/user/wp-config.php
600 -rw—— /home/user/cgi-bin/.htaccess
Используйте актуальную и безопасную версию PHP
По состоянию на 6 мая 2022 года самой последней и рекомендуемой версией PHP для WordPress является 8.0. Всегда можно проверить поддерживаемые и безопасные версии PHP, перейдя по этой ссылке. Как и в случае с любым другим программным обеспечением, поддержание всего ПО в актуальном состоянии является важным фактором безопасности WP.
Отключите редактирование тем и плагинов на уровне панели администратора WordPress
Если хакеры получат доступ к учётной записи администратора, то им будет очень легко внедрить вредоносный код в ваши темы и плагины WordPress. Мы будем использовать
DISALLOW_FILE_EDIT
, чтобы запретить редактирование файлов и повысить безопасность сайта.Рассмотрим ниже, как это сделать:
- Для начала откроем файл wp-config.php с помощью любого текстового редактора.
- Внутри этого файла найдите строку
/* That’s all, stop editing! Happy blogging. */
(На этом всё, можете прекратить редактирование! Удачи в ведении блога) и вставьте над ней следующий код:define( 'DISALLOW_FILE_EDIT,' true );
- Сохраните изменения и закройте файл.
- Если вы все сделали правильно, то ссылки «Plugins > Editor» и «Appearance > Editor» больше не должны быть видны в панели управления.
![](https://habrastorage.org/webt/3k/fb/r1/3kfbr1q1wjav-1v1wjwdlr1frfo.jpeg)
Постоянно обновляйте свои плагины WordPress
Также хорошей идеей будет следить за тематическими блогами и группами поклонников WP в социальных сетях. Многие пользователи WordPress делятся уведомлениями о критических ошибках в определённых плагинах WordPress. Если вы увидели ошибку, касающуюся плагина, который вы используете на своём сайте WordPress, немедленно выполните обновление. Кроме того, не забудьте удалить неиспользуемые плагины, чтобы избежать ненужных уязвимостей в вашей системе безопасности.
Устанавливайте темы и плагины WordPress только из надёжных источников
Самый безопасный способ — использовать официальную базу данных/репозиторий.
Темы WordPress можно найти здесь,
![](https://habrastorage.org/webt/nm/ms/bx/nmmsbxnsdi5y-ihrwswnhjcfg50.jpeg)
а доверенные плагины — здесь.
![](https://habrastorage.org/webt/ue/j0/zo/uej0zostngldcanggnto2kyieuw.jpeg)
Файлы в этом хранилище были проверены и, очевидно, перед публикацией подвергались сканированию на наличие вредоносных программ.
Измените wp_prefix
в базе данных во время установки WordPress
По умолчанию установка WordPress происходит с префиксом
wp_
, но в процессе стоит изменить его на собственный. Тем самым мы усложним вредоносным программам доступ к нашей базе данных и возможность извлечь данные.![](https://habrastorage.org/webt/fc/am/8n/fcam8n_rvjxrga3_-mr3ffodt8m.jpeg)
Не используйте стандартный логин «Admin». Используйте надёжные пароли
Обязательно смените логин на собственный. Также не забывайте, что взломать сложные пароли с использованием нескольких различных символов намного труднее.
Отключите функцию регистрации пользователей, если она вам не нужна
Для этого:
- Перейдите на страницу Настройки (
Settings
), раздел Общие (General
). - Снимите флажок в поле «Любой может зарегистрироваться» (
Anyone can register
) в разделе Членство (Membership
). - Сохраните изменения.
![](https://habrastorage.org/webt/ug/w6/tt/ugw6ttdkvdwn4oq6ii6_c18zoww.jpeg)
Отключите комментарии, если они вам не нужны
Есть несколько способов сделать это. Вы можете использовать свой код, встроенные опции WordPress или плагин.
Чтобы отключить комментарии глобально с помощью самого WordPress, выполните следующие действия:
- Перейдите в Настройки (
Settings
), раздел Обсуждение (Discussion
)
- Снимите галочку в поле «Разрешить людям оставлять комментарии к новым статьям» (
Allow people to post comments on new articles
).
- Сохраните изменения.
Как мы уже говорили ранее, вы также можете написать свой собственный код или использовать плагин для достижения того же эффекта, но в данном руководстве мы представили только самый быстрый вариант.
Настройка robots.txt для блокирования несанкционированного доступа к файлам WordPress
Данный файл, размещённый в главной папке домена, служит указателем для краулеров Google (агентов пользователей), показывающим, какие страницы они должны посещать и индексировать, а какие — нет. Вы можете использовать пример, представленный в сером поле здесь (не забыв изменить
http://www.example.com/
на ваш собственный домен).Вы также можете взглянуть на официальное руководство Google по robots.txt.
![](https://habrastorage.org/webt/5q/ss/ak/5qssakecn35h3nfd4uscautt_ms.jpeg)
Защитите себя от подбора учётных записей пользователей
Подбор учётных записей пользователей — это форма вредоносной активности, которая позволяет хакерам использовать брутфорс атаки для получения доступа к учётным записям пользователей. Обратите внимание на обсуждение на StackExchange о том, как можно снизить риск подобных атак.
Безопасный доступ к wp-admin / wp-login.php, двухфакторная аутентификация, ограниченное количество попыток входа в систему
Эти меры могут быть реализованы различными способами. Наиболее популярным является ограничение доступа для определённых IP-адресов или отображение дополнительного окна с информацией об аутентификации. Мы также можем установить ограничение на количество попыток входа или вообще использовать двухфакторную аутентификацию.
Двухфакторная аутентификация
Чтобы подключить эту возможность, сначала загрузите плагин Google Authenticator.
![](https://habrastorage.org/webt/83/1f/ne/831fnensj57wgzhhbusdpjsemb0.jpeg)
После установки перейдите на страницу профиля и отметьте поле «Активен» (
Active
) в настройках Google Authenticator.![](https://habrastorage.org/webt/ej/p8/8e/ejp88erxemhimv3f5b82qsv1r8w.jpeg)
Теперь самое время установить приложение Google Authenticator для Android
![](https://habrastorage.org/webt/wo/iy/ko/woiykon9oer94bduslmvuisfr64.jpeg)
или iOS.
![](https://habrastorage.org/webt/6g/kb/oa/6gkboahvcx2x0c6v4nwaemphm3k.jpeg)
После запуска аутентификатора должен появиться запрос на ввод кода или сканирование QR-кода. Вернитесь в настройки плагина и либо скопируйте код в приложение, либо выберите «Показать/скрыть QR-код» (
Show/Hide QR code
) и отсканируйте его телефоном.![](https://habrastorage.org/webt/kx/nm/rj/kxnmrjx2f-bewm89ml_fzfeimua.jpeg)
Начнётся автоматическая настройка, вам необходимо принять все изменения и затем нажать «Обновить профиль» (
Update profile
) на подстранице «Ваш профиль» (Your profile
). С этого момента каждая попытка входа в систему будет требовать двухфакторной аутентификации на странице входа в WordPress.Ограничение количества попыток входа в систему
Как ранее уже упоминалось, ещё одним методом предотвращения атак брутфорсом является ограничение количества попыток входа пользователя в систему. Как это сделать?
Наверное, самое простое решение — это использовать один из многочисленных плагинов безопасности WordPress, например, WP Limit Login Attempts от Arshid. Вы можете скачать его здесь.
![](https://habrastorage.org/webt/ly/2m/c0/ly2mc0gorpeg5pjpm_uh0lgmefw.jpeg)
Регулярно делайте резервные копии
Даже самой лучшей защиты может быть недостаточно, чтобы спасти ваш сайт от хакеров WordPress. Поэтому убедитесь, что у вас всегда есть резервная копия на случай, если худшее всё-таки произойдёт. Ещё в качестве альтернативы вы можете воспользоваться следующим плагином безопасности.
![](https://habrastorage.org/webt/l0/af/gr/l0afgrqvuq3jwps76eliwv6lpze.jpeg)
Скрывайте информацию об используемых вами версиях WordPress
Информация о вашей версии WP может быть полезна хакерам, поэтому нет необходимости делиться ею свободно. Во-первых, заблокируйте доступ к файлу
readme
, добавив следующие строки кода в файл .htaccess
:<files readme.html>
order allow,deny
deny from all
</files>
Во-вторых, вы можете использовать плагин безопасности для деактивации этой информации. Одним из таких плагинов является Sucuri, который после активации будет автоматически скрывать эту информацию, но для уверенности вы можете проверить это, зайдя в «Настройки» (
Settings
) > вкладка «Усиление» (Hardening
).![](https://habrastorage.org/webt/bc/xw/zd/bcxwzdc7myt74og7zc4zpwkbpem.jpeg)
Вы также можете удалить информацию о версии, добавив следующие строки кода либо в плагин для конкретного сайта, либо в плагин Code Snippets:
function wpbeginner_remove_version() {
return '';
}
add_filter('the_generator', 'wpbeginner_remove_version');
В-третьих, вы можете удалить информацию о версии WP в CSS/JS файлах, загружаемых на сайт. Вот ссылка на то, как это сделать, следуя рекомендациям пользователя tjhole.
Блокируйте выполнение PHP-скриптов в тех WP каталогах, где это не требуется
Запретите выполнение файлов PHP в не предназначенных для этого каталогах, чтобы повысить безопасность вашей платформы. Следуя решениям на сайте wpbeginner, откройте текстовый редактор и введите следующий код:
<Files *.php> deny from all </Files>
Сохраните этот текстовый файл как
.htaccess
и загрузите его в папку /wp-content/uploads/
на вашем сайте.Отключите доступ к REST API вашего WordPress
Если вы не планируете использовать это API, то вы можете отключить к нему доступ с помощью следующего плагина.
![](https://habrastorage.org/webt/z-/x2/-0/z-x2-05xde_jbxwgx4eg10pyhuq.jpeg)
Ограничьте или отключите доступ к XML-RPC
Если вы не используете XML-RPC, вы также можете отключить его с помощью:
function remove_xmlrpc_pingback_ping( $methods ) { unset($methods['pingback.ping']); unset($headers['X-Pingback']); return $methods; } add_filter('xmlrpc_enabled', '__return_false'); add_filter('xmlrpc_methods', 'remove_xmlrpc_pingback_ping' );
или с помощью .htaccess:
<Files xmlrpc.php> Order deny,allow Deny from all </Files>
Посмотрите эту ссылку, если вам нужна дополнительная информация.
Убедитесь, что ваш сайт имеет SSL-сертификат
Теоретически можно использовать плагин, но мы рекомендуем действовать вручную, как предложено на этом сайте (прим. переводчика: статья на англ.языке). Ознакомьтесь с разделом «How to properly enable SSL in WordPress / Как правильно включить SSL в WordPress» и следуйте инструкциям.
Заключение
Безопасность должна быть главным приоритетом любого предприятия, большого или малого. Мы надеемся, что эти рекомендации будут полезны в борьбе с хакерами и вредоносными программами. Обязательно следите за нашими статьями, чтобы получить другие советы и рекомендации.
НЛО прилетело и оставило здесь промокод для читателей нашего блога:
— 15% на все тарифы VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.