Версия WordPress, выводимая в секции <head> вашего сайта, часто становится точкой интереса для злоумышленников. Зная точную версию CMS, они могут подобрать уязвимости, характерные именно для неё. В этой статье подробно разберём, как надежно удалить или скрыть версию WordPress из <head>, а также обсудим плюсы и минусы этого подхода. Приведём практические примеры, в том числе с кодом и плагинами.
Почему важно удалить версию WordPress из <head>
По умолчанию WordPress выводит мета-тег с версией в <head> каждой страницы:
<meta name="generator" content="WordPress 6.2.2" />Этот тег служит для информирования поисковых систем и пользователей о версии CMS, но одновременно облегчает жизнь хакерам.
Основные причины для удаления версии:
- Повышение безопасности. Злоумышленники не смогут быстро определить уязвимости, характерные для вашей версии WordPress.
- Сокрытие данных. Меньше информации для ботов и скриптов, которые сканируют сайты в поисках слабых мест.
- Оптимизация. Некоторым веб-разработчикам просто не нравится избыточная информация в <head>.
Однако стоит понимать, что это не панацея — опытный хакер может определить версию и другими способами, например, по особенностям сгенерированного HTML или через API. Но удаление версии — это простой и эффективный дополнительный уровень защиты.
Как удалить версию WordPress с помощью функций темы
Самый популярный способ — использовать функцию remove_action для удаления генератора версии. Добавьте следующий код в файл functions.php вашей активной темы:
function wpdigest_remove_wp_version() {
return '';
}
add_filter('the_generator', 'wpdigest_remove_wp_version');Этот код заменяет содержимое тега <meta name="generator"> на пустую строку, effectively скрывая версию.
Если хотите полностью убрать тег, можно использовать более жесткий подход:
remove_action('wp_head', 'wp_generator');Эта строка полностью удалит генератор версии из <head>, что часто предпочтительнее.
Важно: если вы используете дочернюю тему, добавляйте код именно в её functions.php или через плагин для пользовательских функций, чтобы не потерять изменения при обновлении темы.
Пример комплексной функции для удаления версии
function wpdigest_secure_remove_version() {
// Удаляем генератор версии
remove_action('wp_head', 'wp_generator');
// Убираем версию из RSS
add_filter('the_generator', '__return_empty_string');
}
add_action('init', 'wpdigest_secure_remove_version');Такой подход гарантирует, что версия не попадет ни в <head>, ни в RSS-ленты.
Использование плагинов для удаления версии WordPress
Если вы не хотите править код напрямую, есть несколько проверенных плагинов, которые сделают это за вас:
- WP Hide & Security Enhancer. Плагин для комплексной маскировки WordPress, включая удаление версии.
- Remove WordPress Version Number. Легкий плагин, который просто убирает тег генератора.
- Sucuri Security. Плагин безопасности, в котором есть опция скрытия версии.
Плагины удобны для новичков, но если вам нужна точечная настройка, лучше использовать кодовые решения.
Удаление версии WordPress из скриптов и стилей
Кроме мета-тега, версия WordPress часто добавляется к URL скриптов и стилей в виде параметра ?ver=6.2.2. Это удобно для кеширования, но также может раскрывать версию.
Чтобы удалить эти параметры, добавьте в functions.php следующее:
function wpdigest_remove_version_from_assets( $src ) {
if (strpos($src, 'ver=')) {
$src = remove_query_arg('ver', $src);
}
return $src;
}
add_filter('script_loader_src', 'wpdigest_remove_version_from_assets', 9999);
add_filter('style_loader_src', 'wpdigest_remove_version_from_assets', 9999);Этот код удалит параметр ver из URL файлов CSS и JS, что дополнительно скрывает версию WordPress.
Плюсы и минусы удаления параметра версии из URL
Плюсы:
- Меньше информации для сканеров.
- Возможное увеличение безопасности.
Минусы:
- Риск проблем с кешированием при обновлении скриптов и стилей.
- Нужно внимательно тестировать сайт после изменений.
Заключение: комплексный подход к скрытию версии WordPress
Удаление версии WordPress из <head> и URL ресурсов — простой и эффективный способ повысить безопасность сайта. Лучше всего комбинировать методы:
- Удалить мета-тег версии с помощью
remove_action('wp_head', 'wp_generator');. - Удалить версию из RSS с помощью фильтра
the_generator. - Удалить параметр
verиз URL скриптов и стилей. - Использовать проверенные плагины безопасности для дополнительной защиты.
При этом важно помнить, что это лишь часть общей стратегии безопасности. Обязательно регулярно обновляйте WordPress, темы и плагины, используйте надёжные пароли и бэкапы.