WordPress - одна из самых популярных систем управления контентом (CMS) в мире. Более 18,9% всех сайтов в интернете работают на этой платформе, и общее число установок превышает 76,5 миллионов. Но у популярности WordPress есть и свои недостатки. По докладу компании Securi, экспертов по безопасности сайтов, WordPress является наиболее уязвимой CMS в мире. Однако, соблюдая некоторые передовые практики и следуя нашим 12 советам, вы сможете значительно укрепить защиту своего сайта на WordPress.
Что вам понадобится для этого?
Перед тем как начать, убедитесь, что у вас есть:
- Доступ к административной панели WordPress.
- Доступ к вашей учетной записи на хостинге (это необязательно, но полезно).
Шаг 1: Обновите WordPress
Самый важный шаг для улучшения безопасности WordPress - всегда держите платформу в актуальном состоянии. Обновите вашу версию WordPress до последней. Даже если это кажется простым советом, лишь 22% всех сайтов используют последнюю версию WordPress.
WordPress внедрил функцию автоматических обновлений с версии 3.7, но она применима только к небольшим обновлениям безопасности. Крупные, ключевые обновления требуют ручной установки.
Если вы не знаете, как обновить WordPress, обратитесь сюда (вставьте ссылку на инструкцию).
Шаг 2: Измените учетные данные
Используете ли вы "admin" в качестве имени администратора WordPress? Если да, вы сильно снижаете безопасность сайта и упрощаете задачу хакерам. Рекомендуется изменить имя пользователя администратора на что-то другое (инструкция здесь) или создать новую учетную запись администратора с другими данными. Следуйте этим шагам, если выбираете второй вариант:
- Войдите в административную панель WordPress.
- Перейдите в раздел "Пользователи" и нажмите "Добавить нового".
- Создайте нового пользователя с правами администратора.
- Войдите в WordPress под новыми данными.
- Вернитесь в раздел "Пользователи" и удалите стандартную учетную запись "Admin".
Крепкий пароль играет ключевую роль в безопасности WordPress. Сложно взломать пароль, состоящий из цифр, букв в разных регистрах и специальных символов. Менеджеры паролей, такие как LastPass и 1Password, могут помочь вам создать и управлять сложными паролями. Если вам приходится входить в админ-панель WordPress из незащищенных сетей (например, в кафе или библиотеках), используйте безопасное VPN, чтобы защитить свои учетные данные.
Шаг 3 – Включение двухэтапной аутентификации
Двухэтапная аутентификация - это дополнительный уровень безопасности для ваших данных при входе на сайт. Она предполагает, что после ввода вашего имени пользователя, вам придется выполнить еще один шаг, чтобы подтвердить свою личность и получить доступ. Вы, возможно, уже используете этот метод для входа в почту, интернет-банк и другие аккаунты, где важна конфиденциальность информации. Почему бы не внедрить двухэтапную аутентификацию и на своем сайте на WordPress?
Несмотря на первый взгляд кажется, что это сложно, активировать двухэтапную аутентификацию на WordPress довольно просто. Вам лишь потребуется установить специальное мобильное приложение для двухэтапной аутентификации и настроить его для работы с вашим сайтом WordPress. Более подробную информацию о том, как включить двухэтапную аутентификацию на WordPress, вы найдете здесь.
Шаг 4 – Отключение отправки отчетов об ошибках PHP
Отчеты о PHP-ошибках могут быть полезными при разработке сайта, помогая выявить и исправить проблемы. Однако, отображение ошибок для всех - это ненадежная практика в обеспечении безопасности WordPress.
Эту проблему необходимо решить как можно скорее. Не волнуйтесь, вам не нужно быть профессиональным программистом, чтобы отключить отправку отчетов о PHP-ошибках на WordPress. Многие хостинг-поставщики предоставляют эту опцию в панели управления. Если такой возможности нет, то просто добавьте следующие строки в ваш файл wp-config.php. Для редактирования файла wp-config.php можно воспользоваться FTP-клиентом или файловым менеджером.
error_reporting(0);
@ini_set(‘display_errors’, 0);
И вот, отчеты о PHP-ошибках больше не будут выводиться.
Шаг 5 – Не используйте "взломанные" шаблоны и плагины для WordPress
Запомните простую мудрость: "Бесплатный сыр бывает только в мышеловке". То же самое верно и для "взломанных" шаблонов и плагинов.
В интернете можно найти тысячи "взломанных" (nulled) плагинов и шаблонов для WordPress. Пользователи могут бесплатно скачивать их с различных файловых обменников или через торренты. Но многие не осознают, что множество из этих файлов содержат вредоносные программы или могут содержать ссылки на незаконные методы оптимизации для поисковых систем.
Прекратите использовать "взломанные" плагины и шаблоны. Это не только неэтично, но также представляет угрозу безопасности вашего сайта на WordPress. В итоге, вам придется потратить гораздо больше денег на очистку и восстановление вашего сайта.
Шаг 6 – Сканирование WordPress на предмет вредоносных программ
Для заражения WordPress, хакеры часто находят уязвимости в шаблонах и плагинах. Поэтому важно регулярно сканировать ваш сайт. Существует множество хороших плагинов для этой цели, и одним из наилучших является WordFence. Он предлагает подробное руководство и возможность автоматической проверки, а также множество других полезных функций. Вы сможете даже восстановить измененные или зараженные файлы в несколько кликов. И лучшее в том, что WordFence доступен бесплатно. Этой информации должно быть достаточно, чтобы вы установили его прямо сейчас.
Среди других популярных плагинов для усиления безопасности WordPress стоит отметить:
- BulletProof Security – в отличие от WordFence, BulletProof не сканирует ваши файлы, но предоставляет защиту брандмауэра, базы данных и другие функции. Он также легко настраивается и устанавливается всего в несколько кликов мышкой.
- Sucuri Security – этот плагин защитит вас от DDoS-атак, содержит черный список, сканирует ваш сайт на предмет вредоносных программ и управляет вашим брандмауэром. При обнаружении угроз вы будете оповещены по электронной почте. Помимо этого, этот плагин включает в себя черные списки от Google, Norton и McAfee.
Шаг 7 – Перенос сайта на более безопасный хостинг
Может показаться странным, но более 40% сайтов на WordPress были взломаны из-за недостаточной безопасности хостинга. Это статистика, которая делает переход на более безопасный хостинг разумным шагом. Важные факторы при выборе нового хостинга:
- Изоляция: Если это виртуальный хостинг, убедитесь, что ваш аккаунт изолирован от других пользователей, чтобы не было риска заражения от соседних сайтов на сервере.
- Автоматические бэкапы: Удостоверьтесь, что новый хостинг предоставляет функцию автоматического регулярного резервного копирования данных.
- Безопасность: Убедитесь, что на сервере установлен сторонний файервол и инструменты для сканирования на предмет угроз.
Шаг 8 – Регулярное резервное копирование данных
Даже самые крупные сайты подвергаются риску взлома каждый день, несмотря на дорогостоящие меры безопасности. Даже если вы следуете лучшим практикам безопасности и используете советы из этой статьи, регулярное резервное копирование данных остается важным.
Создание резервной копии данных можно осуществить несколькими способами. Вы можете вручную скачать файлы сайта и экспортировать базу данных, или воспользоваться инструментами, предоставляемыми вашим хостинг-поставщиком. Другой вариант - использовать специальные плагины для WordPress. Среди наиболее популярных:
Вы даже можете настроить автоматическое создание и хранение резервных копий WordPress в облачном хранилище, например, Dropbox.
Шаг 9 – Отключение редактора файлов
Как вы, возможно, знаете, WordPress включает в себя встроенный редактор, позволяющий редактировать PHP-файлы. Эта функция может быть полезной, но также может стать источником проблем. Если злоумышленники получат доступ к вашей панели управления, они могут воспользоваться Редактором Файлов. Некоторые пользователи WordPress предпочитают полностью отключить эту функцию. Это можно сделать, добавив следующий код в файл wp-config.php:
define( 'DISALLOW_FILE_EDIT', true );
Этот шаг поможет предотвратить возможные угрозы. Если в будущем потребуется воспользоваться функцией редактора файлов, вы всегда сможете удалить этот код из файла wp-config.php с помощью FTP-клиента или файлового менеджера вашего хостинг-поставщика.
Шаг 10 – Удаление неиспользуемых шаблонов и плагинов
Проведите уборку на своем сайте на WordPress и избавьтесь от всех неиспользуемых шаблонов и плагинов. Хакеры часто находят доступ к вашей панели управления или загружают вредоносное содержимое на сервер через отключенные и устаревшие шаблоны и плагины, даже официальные. Удаляя неактуальные плагины и шаблоны, которые вы больше не используете (и, возможно, давно не обновляли), вы уменьшаете риски и повышаете безопасность вашего сайта на WordPress.
Шаг 11 – Использование .htaccess для усиления безопасности WordPress
Файл .htaccess необходим для правильной работы ссылок в WordPress. Без правильных записей в файле .htaccess, могут возникать ошибки 404.
Мало кто знает, что .htaccess можно использовать для улучшения безопасности WordPress. Например, вы можете запретить доступ или отключить выполнение PHP в определенных папках. Ниже приведены примеры, как можно использовать .htaccess для повышения безопасности вашего сайта на WordPress.
ВАЖНО! Перед внесением изменений в файл .htaccess, обязательно создайте резервную копию текущего файла. Вы можете использовать FTP-клиент или файловый менеджер вашего хостинг-поставщика.
Запрет доступа к административной части WordPress
Следующий код позволит вам получить доступ к административной части WordPress только с определенных IP-адресов:
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "WordPress Admin Access Control"
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
allow from xx.xx.xx.xxx
allow from xx.xx.xx.xxx
</LIMIT>
Обратите внимание, что вам следует заменить "xx.xx.xx.xxx" на ваш IP-адрес. Вы можете узнать свой текущий IP-адрес с помощью онлайн-сервисов. Если вы управляете сайтом из разных мест, добавьте соответствующие IP-адреса. Настоятельно не рекомендуется использовать этот код, если у вас динамический IP-адрес.
Отключение выполнения PHP в определенных папках
Хакеры часто пытаются загрузить вредоносные скрипты в папку "uploads" WordPress. По умолчанию, эта папка предназначена только для хранения медиафайлов и не должна содержать PHP-файлов. Вы можете легко отключить выполнение PHP в этой папке, создав файл .htaccess в папке "/wp-content/uploads/" с такими правилами:
<Files *.php>
deny from all
</Files>
Защита файла wp-config.php
Файл wp-config.php содержит важные настройки WordPress и данные базы данных MySQL, что делает его целью для хакеров. Однако его безопасность можно повысить, добавив следующие правила в .htaccess:
<files wp-config.php>
order allow,deny
deny from all
</files>
Эти шаги помогут защитить ваш сайт на WordPress от потенциальных угроз. Не забудьте соблюдать осторожность при внесении изменений в файл .htaccess и всегда делать резервные копии.
Шаг 12 – Изменение стандартных префиксов базы данных в WordPress для защиты от SQL-инъекций
База данных в WordPress содержит всю важную информацию, необходимую для работы вашего сайта. Она также является целью для хакеров и спамеров, которые могут попытаться провести атаку SQL-инъекции. Во время установки WordPress, многие оставляют стандартный префикс базы данных "wp_". Согласно данным WordFence, каждый пятый взлом WordPress связан с SQL-инъекциями. Использование стандартного префикса "wp_" делает ваш сайт уязвимым. В этом шаге мы рассмотрим, как изменить префикс базы данных для повышения безопасности сайта на WordPress.
Изменение префикса таблиц для существующего сайта на WordPress
ВАЖНО! Прежде чем начать, обязательно создайте резервную копию вашей базы данных MySQL для безопасности.
Часть 1 – Изменение префикса в файле wp-config.php
- Найдите файл wp-config.php с помощью FTP-клиента или файлового менеджера.
- Найдите строку с настройкой $table_prefix.
Вы можете изменить этот префикс, добавив дополнительные цифры, буквы или нижние подчеркивания. Например, мы используем "wp_1secure1_" в качестве нового префикса таблиц.
Часть 2 – Обновление всех таблиц базы данных
Теперь вам нужно обновить все таблицы в вашей базе данных, что можно сделать с помощью phpMyAdmin.
- Найдите базу данных, как указано в первой части, и войдите в нее.
- По умолчанию, WordPress имеет 12 таблиц, и каждая из них должна быть обновлена. Однако можно ускорить процесс, используя раздел SQL в phpMyAdmin.
- Используйте следующий синтаксис для обновления всех таблиц:
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`;
Если у вас есть дополнительные таблицы от шаблонов WordPress или плагинов, добавьте их в запрос SQL и выполните его вручную.
Часть третья – Проверка опций и пользовательских таблиц метаданных в WordPress
В зависимости от количества установленных плагинов, некоторые записи в вашей базе данных могут требовать ручного обновления. Вы можете сделать это с помощью SQL-запросов для таблиц опций и пользовательских таблиц метаданных.
Для таблицы опций используйте следующий запрос:
SELECT * FROM `wp_1secure1_options` WHERE `option_name` LIKE '%wp_%'
Для пользовательской таблицы метаданных используйте следующий запрос:
SELECT * FROM `wp_1secure1_usermeta` WHERE `meta_key` LIKE '%wp_%'
Когда вы получите результаты запроса, обновите все значения с "wp_" на ваш новый настроенный префикс. Для таблицы метаданных пользователей отредактируйте поле "meta_key", а для опций измените значение "option_name".
Обеспечение безопасности при новых установках WordPress
Если у вас планируется устанавливать новые сайты на WordPress, вы можете легко настроить префиксы таблиц в процессе установки.
Поздравляем! Вы успешно улучшили безопасность вашей базы данных в WordPress и снизили риски SQL-инъекций.
Заключение
Несмотря на то, что WordPress является одной из самых популярных CMS в мире, увеличить ее уровень безопасности вполне выполнимая задача. В данном руководстве мы предоставили вам 12 советов, которые помогут вам поддерживать безопасность вашего сайта на WordPress на должном уровне.
Полезный дополнительный материал по защите сайта на CMS WordPress: