Версия WordPress, отображаемая в HTML коде вашего сайта, может стать уязвимостью, позволяя злоумышленникам определить используемую версию CMS и подобрать эксплойты для неё. В этой статье мы подробно разберём, как убрать версию WordPress из HTML, а также из HTTP-заголовков и RSS-лент, чтобы повысить безопасность вашего сайта.
Почему нужно убрать версию WordPress из HTML кода? Безопасность и защита сайта
По умолчанию WordPress добавляет мета-тег <meta name="generator" content="WordPress X.X.X" /> в заголовок страниц, где X.X.X — версия CMS. Этот тег легко обнаружить через просмотр исходного кода страницы. Если злоумышленник знает точную версию, он может использовать известные уязвимости именно для этой версии.
Кроме того, версия WordPress может быть видна в HTTP-заголовках и RSS-лентах. Удаление этих данных — один из эффективных способов повысить безопасность сайта.
Хотя этот метод не заменяет комплексную защиту, он уменьшает риск автоматизированных атак.
Удаление версии WordPress из HTML кода с помощью функций темы
Самый простой и безопасный способ — добавить функцию, которая удаляет мета-тег генератора.
Откройте файл functions.php вашей активной темы и добавьте следующий код:
function wpcom_remove_wp_version() {
return '';
}
add_filter('the_generator', 'wpcom_remove_wp_version');
Этот фильтр изменит содержимое тега генератора на пустую строку, и версия WordPress больше не будет выводиться в <head>.
Удаление версии из RSS и HTTP-заголовков
Для удаления версии из RSS-лент добавим следующий код в functions.php:
remove_action('wp_head', 'wp_generator');
Для HTTP-заголовков, которые могут содержать версию, добавим:
function wpcom_remove_version_header() {
return '';
}
add_filter('wp_version_check', '__return_false');
add_filter('automatic_updater_disabled', '__return_true');
Хотя эти фильтры не всегда удаляют заголовок X-Powered-By, для этого можно настроить сервер (например, Apache или Nginx) отдельно.
Использование плагинов для удаления версии WordPress
Если вы не хотите редактировать код вручную, можно использовать специализированные плагины. Вот несколько популярных вариантов:
- Clearfy Pro — плагин для оптимизации и безопасности, который позволяет скрыть версию WordPress, отключить ненужные скрипты и многое другое. Подробнее на wpshop.ru.
- WP Hardening — простой плагин для усиления безопасности, включая скрытие версии CMS.
- Hide My WP — более продвинутый, скрывает информацию о WordPress и структуре сайта.
Использование плагинов удобно, но может влиять на производительность, поэтому выбирайте с умом.
Проверка удаления версии WordPress: как убедиться, что версия скрыта
После внесённых изменений проверьте исходный код страницы (Ctrl+U в браузере) и найдите слово "generator". Если мета-тег отсутствует — всё сделано правильно.
Также можно проверить HTTP-заголовки через инструменты разработчика (Network → Headers) и убедиться, что заголовок с версией не отправляется.
Для RSS-лент откройте адрес http://ваш-сайт.ru/feed/ и убедитесь, что в начале ленты нет версии WordPress.
Дополнительные советы по безопасности WordPress
Удаление версии — важный шаг, но его недостаточно для полноценной защиты. Вот что ещё рекомендуют опытные разработчики:
- Всегда обновляйте WordPress, темы и плагины до последних версий.
- Используйте плагины безопасности, например, Clearfy Pro, который помогает отключать лишние функции и улучшать защиту.
- Ограничьте количество пользователей с правами администратора.
- Настройте правильные права доступа к файлам на сервере.
- Регулярно делайте резервные копии сайта и базы данных.
Пример комплексного кода для удаления версии WordPress и улучшения безопасности
Вот пример кода, который можно добавить в functions.php вашей темы для комплексного удаления версии и отключения ненужных функций:
function wpcom_secure_site() {
// Убрать мета-тег генератора
add_filter('the_generator', '__return_empty_string');
// Удалить генератор из <head>
remove_action('wp_head', 'wp_generator');
// Отключить REST API для неавторизованных пользователей
add_filter('rest_authentication_errors', function ($access) {
if (!is_user_logged_in()) {
return new WP_Error('rest_cannot_access', 'REST API restricted to authenticated users.', array('status' => 401));
}
return $access;
});
// Отключить XML-RPC
add_filter('xmlrpc_enabled', '__return_false');
}
add_action('init', 'wpcom_secure_site');
Этот код не только убирает версию, но и ограничивает доступ к REST API и отключает XML-RPC — частые точки атак.