Опубликовано Оставить комментарий

Безопасность WordPress

Защита wordpress

Пошаговая инструкция настройки безопасности WordPress версии 5.6 и выше.

Шаг 0 — Выбор хостинг провайдера

Если Вы читаете эту статью — значит хостинг у Вас есть. И что либо рекомендовать поздно:) Запомните на будущее хостинг выбирают НЕ по цене.

Шаг 1 — Удалите все лишнее плагины, темы

Смело удаляйте все неиспользуемые плагины и темы. Хакеры часто используют отключенные и устаревшие шаблоны и плагины (даже официальные плагины WordPress) для получения доступа к вашей панели управления, или загрузки вредоносного содержимого на ваш сервер. Удаляя плагины и шаблоны, которые вы перестали использовать, вы снижаете риски и делаете ваш сайт на WordPress более безопасным.

Например, вы устанавливали плагины, чтобы протестировать и выбрать тот, который будете использовать. После выбора не забудьте удалить все ненужные.

  1. Удалите неиспользуемые плагины.
  2. Удалите неиспользуемые темы. У вас должно быть максимум 3 темы: первая которую используете на сайте, ее дочерняя тема и тема Twenty One (последняя на 2021 год официальная тема Вордпресс). Twenty One нужно оставить, чтобы в случае поломки (белый экран часто появляется из-за ошибок PHP, тем более если у Вас кастомная тема или плагины ) вашей основной темы Вы могли переключиться на Twenty One и устранить проблемы.

Шаг 2 — Включить автообновление движка, плагинов, тем

Уязвимости прошлых версий ПО находятся в открытом доступе, поэтому последняя версия — любого программного обеспечения самая безопасная.

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

Начиная с версии 5.5 в WordPress появилась встроенная функция автоматического обновления тем и плагинов.

  1. Включение автообновления тем: Зайдите в раздел «Внешний вид» —> «Темы», наведите мышку на нужную тему, щелкните «Информация о теме» -> Включите автоматическое обновление.
  2. Включение автообновления плагинов: Перейдите в раздел «Плагины» и на против нужного — включите автообновление.

Если у Вас на сайте есть софт, не совместимый с новыми версиями WordPress, плагина или темы, Вы можете включить выборочное автоматическое обновление плагинов или темы.

Шаг 3 — Удалите админа или использование нестандартных учетных данных для входа

Не используйте такие логин как admin. Строго рекомендуется изменить имя пользователя администратора на что-нибудь другое.

Проще всего задать логин при установке WordPress. Но если он у вас уже установлен — создайте новую учетную запись администратора с другими данными.

  1. Войдите в панель управления WordPress
  2. Найдите раздел Пользователи и нажмите кнопку Добавить нового.
  3. Создайте нового пользователя и назначьте ему права Администратора
  4. Перезайдите в WordPress с вашими новыми данными.
  5. Вернитесь в раздел Пользователи и удалите стандартную учетную запись Admin.
Совет
Хороший пароль играет ключевую роль в безопасности WordPress. Гораздо сложнее взломать пароль состоящий из цифр, букв нижнего и верхнего регистра и специальных знаков.

Рекомендую использовать специализированные инструменты для создания и безопасного хранения паролей.

Шаг 4 — Делайте резервное копирование данных настолько часто, насколько это возможно

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

Не все атаки злоумышленников возможно предупредить, но всего лишь одна успешная атака может уничтожить все усилия по работе над вашим сайтом. Советуем делать регулярные резервные копии веб-сайта.

Внимание
Многие хостинговые компании предоставляют опцию серверных резервных копий БЕСПЛАТНО и казалось бы все хорошо! Но, в настоящий момент я не знаю ни одного хостинг провайдера у которого бы услуга резервирования работала корректно, тем более БЕСПЛАТНО! Возможно я чересчур требователен, но если у Вас был опыт реального восстановления сайта из бекапов провайдера — напишите мне в комментариях. СОВЕТ: не верьте маркетологам выбранного вами хостинга, а проведите тест по восстановлению сайта самостоятельно!

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

  • VaultPress
  • BackUpWordPress
  • BackupGuard
  • UpdraftPlus
  • или найдите плагин по ссылке https://wordpress.org/plugins/tags/backup/
  • WordPress Database Backup — настройки плагина позволяют установить опцию ежедневной отправки резервной копии базы данных на ваш контактный почтовый ящик.
Мой опыт для VPS / VDS/ Dedicated
Если мне приходится администрировать сервер, я обычную настраиваю связку AutoMySQLBackup и BackupPC.

Шаг 5 — Отключите WP JSON и всякие фичи

WP JSON — этo coкpaщeниe oт WordPress JSON REST API. WP JSON используется для написания пpилoжeния нa paзных плaтфopмaх и нa paзныx языкaх, которые могут yпpaвлять вашим сайтом: добавлять, изменять и yдaлять coдepжимoe, нacтpaивaть тeмы, мeню, виджeты и пpoчee. Как Вы уже догадались он позволяет делать небезопасные вещи!

Поисковые системы зачастую /wp-json/ заносят в индeкc кaк пoдpaздeл сaйтa. С точки зрения SEO в индексе должны быть только страницы, которые приносят трафик, а не технические (мусорные) страницы /wp-json/.

Oтключaя фyнкциoнaл WordPress REST API, пoмнитe, чтo eгo используют нeкoтopые пoпyляpные плaгины, нaпpимep Contact Form 7. Пoэтoмy, ecли вдруг y вac пepecтaлa paбoтaть фopмa oбpaтнoй cвязи, пocмoтpитe, a нe oтключeн ли REST API?

У нас есть как минимум две причины чтобы отключить wp-json — это безопасность и SEO. Для отключения wp-json я использую плагин Clearfy Pro или Вы можете использовать нижеприведённый код.

// Отключаем сам REST API
 add_filter('rest_enabled', '__return_false');
 // Отключаем фильтры REST API
 remove_action( 'xmlrpc_rsd_apis', 'rest_output_rsd' );
 remove_action( 'wp_head', 'rest_output_link_wp_head', 10, 0 );
 remove_action( 'template_redirect', 'rest_output_link_header', 11, 0 );
 remove_action( 'auth_cookie_malformed', 'rest_cookie_collect_status' );
 remove_action( 'auth_cookie_expired', 'rest_cookie_collect_status' );
 remove_action( 'auth_cookie_bad_username', 'rest_cookie_collect_status' );
 remove_action( 'auth_cookie_bad_hash', 'rest_cookie_collect_status' );
 remove_action( 'auth_cookie_valid', 'rest_cookie_collect_status' );
 remove_filter( 'rest_authentication_errors', 'rest_cookie_check_errors', 100 );
 // Отключаем события REST API
 remove_action( 'init', 'rest_api_init' );
 remove_action( 'rest_api_init', 'rest_api_default_filters', 10, 1 );
 remove_action( 'parse_request', 'rest_api_loaded' );
 // Отключаем Embeds связанные с REST API
 remove_action( 'rest_api_init', 'wp_oembed_register_route');
 remove_filter( 'rest_pre_serve_request', '_oembed_rest_pre_serve_request', 10, 4 );
 remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );

Вставить данный код нужно в functions.php вашей темы, если последней строкой идет ?>, то вставлять код нужно перед ним.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *