
В этой записи описано как узнать версию WordPress и как скрыть версию WordPress. Решил написать эту статью после того, как понял что в записи Безопасность и защита WordPress - как защититься слишком много текста уделяется вопросу о скрытии версии WordPress.
Польза от скрытия версии WordPress достаточно спорна, вот тут или тут можно почитать об этом. Но так, как все сплошь и рядом рекомендуют ее скрыть банально убрав лишь один тег, то решил более полноценно раскрыть этот вопрос: показать что узнать версию wordpress можно множеством способов, а значит скрывать нужно не только в одном месте.
Тег generator в head блоке
WordPress автоматически вставляет номер своей версии в исходный код каждой страницы между тегами head, выглядит это вот так:
<meta name=generator content="WordPress 4.2.2"/>
Чтобы избавиться от этой надписи добавьте в файл functions.php код:
remove_action('wp_head', 'wp_generator');
Как узнать версию wordpress по файлу readme.html
Узнать версию wordpress по файлу "readme.html" даже легче, чем искать тег generator в исходном коде, файл находится в корневой папке сайта, а значит достаточно просто перейти по подобному адресу: "site.com/readme.html" . В самом начале файла большими буквами написана версия установленного wordpress и его новшества, "фишки", преимущества.
Если мы хотим скрыть версию WordPress, то лучше этот файл удалить или заблокировать к нему доступ.
Для блокирования доступа можно использовать код в файле .htaccess:
# Protect Files <Files readme.html> Order Allow,Deny Deny from all </Files>
Имейте в виду, что этот код может не сработать, если у вас используется nginx сервер. Который в большинстве случаев берет на себя обработку статических файлов, а значит правила для статических файлов в файле .htaccess для apache ему не указ.
Можно просто удалить файл ручками. Для того, чтобы он автоматически удалялся после каждого обновления wordpress можно прописать в cron периодический запуск подобного php-скрипта:
<?php $filename = '/home/user/elims.org.ua/www/readme.html'; if (file_exists($filename)) { echo "Файл $filename существует. Удаляем"; unlink($filename); } else { echo "Файл $filename не существует"; }; ?>
Как скрыть версию WordPress в rss генераторе
Если посмотреть исходный код rss-ленты вашего wordpress сайта, то узнать версию wordpress можно по следующей надписи:
<generator>http://wordpress.org/?v=4.2.2</generator>
При этом она присутствует даже в тех случаях, когда вы используете сервис feedburner.
Чтобы скрыть версию wordpress в rss генераторе используйте код:
function remove_wp_version_rss() { return''; } add_filter('the_generator','remove_wp_version_rss');
Скрываем версию js скриптов и css стилей
Если внимательно присмотреться к исходному коду страницы, то можно заметить подобные строки:
'wp-content/themes/themename/style.css?ver=4.2.2'
Где "?ver=4.2.2" и есть версия wordpress.
А значит нужно избавится от таких приставок к js и css файлам. Кстати это пригодится не только в скрытии версии wordpress, но и в его внутренней оптимизации, часто для оптмизации рекомендуют убирать эти приставки.
В интернете я нашел сразу два схожих кода, которые в этом помогут.
Этот удаляет только те надписи "?ver=" в котором фигурирует версия вашего wordpress:
//удаление версии WordPress из ссылок на скрипты start function wp_version_js_css($src) { if (strpos($src, 'ver=' . get_bloginfo('version'))) $src = remove_query_arg('ver', $src); return $src; } add_filter('style_loader_src', 'wp_version_js_css', 9999); add_filter('script_loader_src', 'wp_version_js_css', 9999); //удаление версии WordPress из ссылок на скрипты end
Этот же удаляет все надписи "?ver=", независимо от того, какая там версия указана:
function _remove_script_version( $src ){ $parts = explode( '?', $src ); return $parts[0]; } //Это для скрытия версии скриптов add_filter( 'script_loader_src', '_remove_script_version', 15, 1 ); //Это для стилей add_filter( 'style_loader_src', '_remove_script_version', 15, 1 );
Как скрыть версию WordPress при помощи плагина
Тут все просто: устанавливаем плагин Meta Generator and Version Info Remover, который должен удалять не только тег generator в исходном коде каждой страницы, но и теги в rss лентах, версии css и js скриптов.
Послесловие
Справедливости ради стоит упомянуть что даже все эти меры 100% не скроют версию WordPress, так как при выходе новых версий WordPress появляется новый функционал и соответственно новые файлы (версии файлов), например в папке "/wp-includes/js/". По этим файлам, обладая некоторым знаниями, все равно можно понять какой wordpress сейчас установлен.
можно wp-content, wp-include переименовать как и многое другое…
стандартными средствами WP.