Некоторые вебмастера и администраторы в целях повышения безопасности скрывают версию 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 продолжает с маниакальным упорством передавать свою версию наружу всеми мыслимыми и немыслимыми способами – есть некоторые сканеры, которые узнают версию, даже если применяются все вышеописанные способы. Зачем передает? – вот в чем вопрос. Может быть у кого-то есть предположения, зачем это делается и как полностью избавить его от этой вредной привычки?
С отладкой это практически никак не связано. Приставки с версиями добавляются к адресам скриптов, чтобы при обновлении плагина или движка браузер не загружал старую версию скрипта из кеша, что может привести к самым разнообразным проблемам именно у простых пользователей, не имеющих привычки регулярно нажимать Ctrl+F5.
Практически все атаки (включая несколько крупных в этом году) ведутся в автоматическом режиме путём перебора известных уязвимостей. Для них не имеет значения не только версия, но и есть ли вообще на сайте WordPress или другая CMS — POST-запросы отправляются даже на сайты на простом HTML. Атакующие сети стремятся выполнить как можно больше запросов в единицу времени, а дополнительные проверки только замедляют этот процесс.
Поэтому, на мой взгляд, скрывать версию не имеет особого смысла — это создаёт лишь иллюзию безопасности. Полностью скрыть её невозможно, т.к. от версии к версии появляются и исчезают файлы, меняется их размер и содержимое. Гораздо большее значение имеют надёжные пароли и своевременное обновление.
Информация к размышлению:
Don’t Hide the Fact That You’re Using WordPress
The WordPress Meta “generator” Tag Paranoia
Спасибо за информацию. Только вашими кодами получилось скрыть версию движка. Код, который предлагали другие ресурсы “ложил” блог. Была ошибка, но что-то самому выискивать ее не хотелось.