Как скрыть версию WordPress

Как скрыть версию WordPress из исходного кода, передаваемого посетителям. Приведенный код хоть и не является абсолютной защитой, но в большинстве случаем предотвращает передачу версии движка.
👍 Научим бесплатно правильно создавать сайты на WordPress. Подробнее →

Некоторые вебмастера и администраторы в целях повышения безопасности скрывают версию WordPress, которая сообщается чуть ли ни каждому прохожему. Делается это очень просто – в файл functions.php добавляется код, запрещающий внедрять мета-тег с версией WordPress в исходный код страниц блога:

remove_action('wp_head', 'wp_generator');

Однако после этого все равно можно узнать версию – WordPress ее вставляет в исходный код сообщений в RSS. Это дело тоже можно отключить, вставив в файл functions.php следующий код:

function my_remove_version_info() {
     return '';
}
add_filter('the_generator', 'my_remove_version_info');

Однако даже и это помогает не до конца – WordPress сообщает свою версию через js-скрипты и css-файлы, коих в нем предостаточно. Давайте запретим ему это делать. Чтобы вырезать версию WordPress из кода js-скриптов и css-файлов, используемых движком, нужно добавить в файл functions.php:

function vc_remove_wp_ver_css_js( $src ) {
    if ( strpos( $src, 'ver=' . get_bloginfo( 'version' ) ) )
        $src = remove_query_arg( 'ver', $src );
    return $src;
}
add_filter( 'style_loader_src', 'vc_remove_wp_ver_css_js', 9999 );
add_filter( 'script_loader_src', 'vc_remove_wp_ver_css_js', 9999 );

Есть еще и второй вариант:

function remove_wp_version_strings( $src ) {
	global $wp_version;
		parse_str(parse_url($src, PHP_URL_QUERY), $query);
	if ( !empty($query['ver']) && $query['ver'] === $wp_version ) {
		$src = remove_query_arg('ver', $src);
	}
	return $src;
}
add_filter( 'script_loader_src', 'remove_wp_version_strings' );
add_filter( 'style_loader_src', 'remove_wp_version_strings' );

Кстати, передача какой-либо версии в коде js-файлов является распространенной практикой, популярности которой я не могу найти объяснения. Нет, я понимаю, что для разработчиков, редактирующих и отлаживающих код, это бывает удобно, но вот зачем это нужно простым пользователям, блоггерам? Код уже работает, его вариант окончателен, так зачем снабжать его этими приставками с версиями? В общем, если вы хотите вырезать эти ненужные добавки применительно не только к версии WordPress, но и вообще к любой другой, передаваемой версии, так сказать, глобально, то можете использовать в файле functions.php этот код:

function vc_remove_wp_ver_css_js( $src ) {
    if ( strpos( $src, 'ver=' ) )
        $src = remove_query_arg( 'ver', $src );
    return $src;
}
add_filter( 'style_loader_src', 'vc_remove_wp_ver_css_js', 9999 );
add_filter( 'script_loader_src', 'vc_remove_wp_ver_css_js', 9999 );

Но похоже, что и это не является абсолютной панацеей – WordPress продолжает с маниакальным упорством передавать свою версию наружу всеми мыслимыми и немыслимыми способами – есть некоторые сканеры, которые узнают версию, даже если применяются все вышеописанные способы. Зачем передает? – вот в чем вопрос. Может быть у кого-то есть предположения, зачем это делается и как полностью избавить его от этой вредной привычки?

Создай свой первый сайт на WordPress

tiaurus

Автор n-wp.ru — блога о WordPress для новичков.

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

  1. Sergey Biryukov

    Нет, я понимаю, что для разработчиков, редактирующих и отлаживающих код, это бывает удобно, но вот зачем это нужно простым пользователям, блоггерам? Код уже работает, его вариант окончателен, так зачем снабжать его этими приставками с версиями?

    С отладкой это практически никак не связано. Приставки с версиями добавляются к адресам скриптов, чтобы при обновлении плагина или движка браузер не загружал старую версию скрипта из кеша, что может привести к самым разнообразным проблемам именно у простых пользователей, не имеющих привычки регулярно нажимать Ctrl+F5.

    WordPress продолжает с маниакальным упорством передавать свою версию наружу всеми мыслимыми и немыслимыми способами

    Практически все атаки (включая несколько крупных в этом году) ведутся в автоматическом режиме путём перебора известных уязвимостей. Для них не имеет значения не только версия, но и есть ли вообще на сайте WordPress или другая CMS — POST-запросы отправляются даже на сайты на простом HTML. Атакующие сети стремятся выполнить как можно больше запросов в единицу времени, а дополнительные проверки только замедляют этот процесс.

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

    Информация к размышлению:
    Don’t Hide the Fact That You’re Using WordPress
    The WordPress Meta “generator” Tag Paranoia

    Ответить
  2. Алексей Щукин

    Спасибо за информацию. Только вашими кодами получилось скрыть версию движка. Код, который предлагали другие ресурсы “ложил” блог. Была ошибка, но что-то самому выискивать ее не хотелось.

    Ответить
×
Прокачай свой сайт WordPress!

-20% на премиум темы и плагины

Создай сайт своей мечты ⋙