Версия WordPress по умолчанию отображается в исходном коде сайта и в ответах REST API. Это может быть потенциальной уязвимостью, поскольку злоумышленники получают информацию о версии CMS и могут искать известные уязвимости именно для неё. В этой статье подробно разберём, как убрать версию WordPress из HTML-кода сайта и REST API, используя функции и примеры кода, а также рассмотрим лучшие практики безопасности.
Зачем удалять версию WordPress из HTML и REST API
По умолчанию WordPress добавляет мета-тег с версией в секцию <head> вашего сайта. Это делается функцией wp_generator. Кроме того, версия отображается в HTTP-заголовках и в REST API, что может облегчить жизнь потенциальным злоумышленникам.
Удаление версии помогает снизить риски автоматизированных атак, которые сканируют сайты на наличие определённых версий с известными уязвимостями. Конечно, это не панацея, и важно поддерживать актуальность CMS и плагинов, но данный шаг является базовой мерой безопасности.
Удаление версии — это простая, но эффективная практика в арсенале веб-разработчика.
Как удалить мета-тег версии из HTML-кода
Для удаления мета-тега с версией WordPress достаточно отключить действие, которое его добавляет. В файле functions.php вашей темы или в пользовательском плагине добавьте следующий код:
function wpdo_remove_wp_version() {
remove_action('wp_head', 'wp_generator');
}
add_action('init', 'wpdo_remove_wp_version');
Этот код удаляет мета-тег <meta name="generator" content="WordPress x.x.x"> из <head>. После этого в исходном коде страницы версия WordPress отображаться не будет.
Удаление версии WordPress из HTTP-заголовков
WordPress также может передавать свою версию в HTTP-заголовках, например, в X-Powered-By. Чтобы убрать её, можно добавить в .htaccess или конфигурацию сервера соответствующие правила, либо использовать PHP:
function wpdo_remove_version_http_header() {
header_remove('X-Powered-By');
}
add_action('send_headers', 'wpdo_remove_version_http_header');
Этот код удалит заголовок X-Powered-By, который иногда содержит информацию о версии PHP и WordPress.
Как удалить версию WordPress из REST API
REST API WordPress по умолчанию возвращает информацию о версии в корневом эндпоинте /wp-json/. Чтобы скрыть эту информацию, используйте следующий фильтр:
function wpdo_remove_rest_api_version( $result ) {
if ( isset( $result->data['version'] ) ) {
unset( $result->data['version'] );
}
return $result;
}
add_filter( 'rest_api_init', function() {
remove_action( 'rest_api_init', 'wp_version_check' );
}, 2 );
add_filter( 'rest_api_version', '__return_empty_string' );
add_filter( 'rest_pre_dispatch', function( $response, $server, $request ) {
if ( strpos( $request->get_route(), '/wp/v2' ) === 0 ) {
$response = wpdo_remove_rest_api_version( $response );
}
return $response;
}, 10, 3 );
Однако самый надёжный способ — отключить полностью REST API, если он не используется, например, с помощью плагина Clearfy Pro или собственного кода:
add_filter( 'rest_enabled', '__return_false' );
add_filter( 'rest_jsonp_enabled', '__return_false' );
Но будьте осторожны: если ваш сайт использует Gutenberg, мобильные приложения или сторонние сервисы, REST API может быть критичен для работы.
Дополнительные рекомендации по безопасности WordPress
Удаление версии WordPress — лишь одна из мер безопасности. Рекомендуем также:
- Регулярно обновлять ядро, темы и плагины.
- Использовать надёжные пароли и двухфакторную аутентификацию (например, плагин Clearfy Pro поддерживает базовые настройки безопасности).
- Ограничить количество попыток входа.
- Использовать SSL и безопасные соединения.
- Отключать ненужные сервисы и функции, например, XML-RPC, если он не нужен.
- Создавать регулярные резервные копии сайта.
Выводы и полезные плагины для безопасности
Удаление версии WordPress из исходного кода и REST API — обязательный шаг для снижения видимости вашего сайта для автоматизированных атак. Используйте приведённые выше функции в вашем functions.php или в собственном плагине.
Для комплексной безопасности рекомендуем обратить внимание на плагины:
- Clearfy Pro — набор инструментов для оптимизации и безопасности.
- WPRemark — для управления комментариями и защиты от спама.
- ABC Pagination — оптимизация пагинации для высокой производительности.
Используйте комплексный подход к безопасности, и ваш сайт будет надёжно защищён от большинства автоматизированных угроз.