
Пошаговая инструкция настройки безопасности WordPress версии 5.6 и выше.
Содержание
Шаг 0 — Выбор хостинг провайдера
Если Вы читаете эту статью — значит хостинг у Вас есть. И что либо рекомендовать поздно:) Запомните на будущее хостинг выбирают НЕ по цене.
Шаг 1 — Удалите все лишнее плагины, темы
Смело удаляйте все неиспользуемые плагины и темы. Хакеры часто используют отключенные и устаревшие шаблоны и плагины (даже официальные плагины WordPress) для получения доступа к вашей панели управления, или загрузки вредоносного содержимого на ваш сервер. Удаляя плагины и шаблоны, которые вы перестали использовать, вы снижаете риски и делаете ваш сайт на WordPress более безопасным.
Например, вы устанавливали плагины, чтобы протестировать и выбрать тот, который будете использовать. После выбора не забудьте удалить все ненужные.
- Удалите неиспользуемые плагины.
- Удалите неиспользуемые темы. У вас должно быть максимум 3 темы: первая которую используете на сайте, ее дочерняя тема и тема Twenty One (последняя на 2021 год официальная тема Вордпресс). Twenty One нужно оставить, чтобы в случае поломки (белый экран часто появляется из-за ошибок PHP, тем более если у Вас кастомная тема или плагины ) вашей основной темы Вы могли переключиться на Twenty One и устранить проблемы.
Шаг 2 — Включить автообновление движка, плагинов, тем
Если вы не хотите обновлять WordPress, потому что делали изменения в файлах, то лучше создать дочернюю тему, перенести изменения в нее, и все таки включите обновления.
Начиная с версии 5.5 в WordPress появилась встроенная функция автоматического обновления тем и плагинов.
- Включение автообновления тем: Зайдите в раздел «Внешний вид» —> «Темы», наведите мышку на нужную тему, щелкните «Информация о теме» -> Включите автоматическое обновление.
- Включение автообновления плагинов: Перейдите в раздел «Плагины» и на против нужного — включите автообновление.
Если у Вас на сайте есть софт, не совместимый с новыми версиями WordPress, плагина или темы, Вы можете включить выборочное автоматическое обновление плагинов или темы.
Шаг 3 — Удалите админа или использование нестандартных учетных данных для входа
Не используйте такие логин как admin. Строго рекомендуется изменить имя пользователя администратора на что-нибудь другое.
Проще всего задать логин при установке WordPress. Но если он у вас уже установлен — создайте новую учетную запись администратора с другими данными.
- Войдите в панель управления WordPress
- Найдите раздел Пользователи и нажмите кнопку Добавить нового.
- Создайте нового пользователя и назначьте ему права Администратора
- Перезайдите в WordPress с вашими новыми данными.
- Вернитесь в раздел Пользователи и удалите стандартную учетную запись Admin.
Рекомендую использовать специализированные инструменты для создания и безопасного хранения паролей.
Шаг 4 — Делайте резервное копирование данных настолько часто, насколько это возможно
Даже самые большие сайты взламываются каждый день, несмотря на тот факт, что их владельцы тратят тысячи на улучшение безопасности WordPress.
Не все атаки злоумышленников возможно предупредить, но всего лишь одна успешная атака может уничтожить все усилия по работе над вашим сайтом. Советуем делать регулярные резервные копии веб-сайта.
Существует несколько путей для создания бэкапов. Вы можете вручную скачать файлы сайта и экспортировать базу данных, или как я писал выше, воспользоваться инструментами, предлагаемыми вашим хостинг тарифом (я не зря употребил слово тариф — привет маркетологам). Еще один путь, использовать WordPress плагины. Самые популярные из них:
- VaultPress
- BackUpWordPress
- BackupGuard
- UpdraftPlus
- или найдите плагин по ссылке https://wordpress.org/plugins/tags/backup/
- WordPress Database Backup — настройки плагина позволяют установить опцию ежедневной отправки резервной копии базы данных на ваш контактный почтовый ящик.
Шаг 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 вашей темы, если последней строкой идет ?>, то вставлять код нужно перед ним.