Google XML Sitemaps: убираем версию и сигнатуру из карты сайта

Осеннее обострение — убираем информацию о версии WordPress и плагина из карты сайта

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

Очевидно, что это очень смущает людей, зацикленных на безопасности сайта.

К счастью, это лечится (во всех смыслах).

Открываем файл wp-content/plugins/google-sitemap-generator/sitemap-core.php, ищем такие строки:

[-]
View Code PHP
  1.                 $this->AddElement(new GoogleSitemapGeneratorDebugEntry("generator=\"wordpress/" . get_bloginfo('version') . "\""));
  2.                 $this->AddElement(new GoogleSitemapGeneratorDebugEntry("sitemap-generator-url=\"http://www.arnebrachhold.de\" sitemap-generator-version=\"" . $this->GetVersion() . "\""));
  3.                 $this->AddElement(new GoogleSitemapGeneratorDebugEntry("generated-on=\"" . date(get_option("date_format") . " " . get_option("time_format")) . "\""));

После чего комментируем эти строки. Либо используем патч:

[-]
--- sitemap-core.php.orig       2010-08-16 10:49:16.000000000 +0300
+++ sitemap-core.php    2010-08-23 20:02:06.000000000 +0300
@@ -1654,9 +1654,9 @@
                        $this->AddElement(new GoogleSitemapGeneratorXmlEntry('<' . '?xml-stylesheet type="text/xsl" href="' . $styleSheet . '"?' . '>'));
                }
 
-               $this->AddElement(new GoogleSitemapGeneratorDebugEntry("generator=\"wordpress/" . get_bloginfo('version') . "\""));
-               $this->AddElement(new GoogleSitemapGeneratorDebugEntry("sitemap-generator-url=\"http://www.arnebrachhold.de\" sitemap-generator-version=\"" . $this->GetVersion() . "\""));
-               $this->AddElement(new GoogleSitemapGeneratorDebugEntry("generated-on=\"" . date(get_option("date_format") . " " . get_option("time_format")) . "\""));
+//             $this->AddElement(new GoogleSitemapGeneratorDebugEntry("generator=\"wordpress/" . get_bloginfo('version') . "\""));
+//             $this->AddElement(new GoogleSitemapGeneratorDebugEntry("sitemap-generator-url=\"http://www.arnebrachhold.de\" sitemap-generator-version=\"" . $this->GetVersion() . "\""));
+//             $this->AddElement(new GoogleSitemapGeneratorDebugEntry("generated-on=\"" . date(get_option("date_format") . " " . get_option("time_format")) . "\""));
 
                //All comments as an asso. Array (postID=>commentCount)
                $comments=($this->GetOption("b_prio_provider")!=""?$this->GetComments():array());

Теперь о том, почему это не спасает. через сокрытие (security through obscurity) — это то решение, которое может защитить лишь от школьника. Дело в том, что версию WordPress можно определить по его «отпечаткам пальцев» — CSS-файлам, версиям используемых javascript-библиотек (jQuery, TinyMCE), даже по названиям картинок. Установленные плагины можно определять перебором, либо пользуясь путями к их CSS/JS-файлам, которые часто можно подсмотреть в исходном коде страницы.

Да и по большому счету, если известен эксплойт, поражающий какую-то конкретную версию WordPress, то его можно использовать и без предварительного знания версии WordPress — либо нет. Если мне известна уязвимость типа SQL injection attack для WordPress версии 2.3.1, проще автоматом ее прогнать по всем сайтам, чем сначала рыскать по ним в поисках версии.

Отсюда совет всем камрадам, страдающим паранойей: это — полумера, причем крайне неэффективная; используйте более эффективные решения.

Автор: ; опубликовано в: Патчи; метки: Google XML Sitemaps, WordPress, безопасность, плагин
23
Авг
2010

RSS Комментарии к статье «Google XML Sitemaps: убираем версию и сигнатуру из карты сайта» (3)  »

  1. Владимир, ты не совсем прав. :-) Подумай про роботов-искунов. Как только обнаруживается очередная уязвимость каждому школьнику проще запустить робота для поиска сайтов с движками и плагинами подходящих для взлома версий. Искать будут по отпечаткам, которые мы сами и выложили в сеть. А вот результаты работы экплоита еще нужно как-никак анализировать. Вобщем, я думаю, лишний раз давать повод ковыряться в двигле не стоит. К тому-же пока шум да дело (идет ломка тех кто афиширует свои движки) подоспеет патч, новая версия или ты сам закроешь уязвимость.
    Кстати, кроме перечисленных тобой признаков существует еще один, который выдает движок WP всегда, пока не исправишь его исходники. Правда об этом далеко не все знают. Да и кто будет лезть в исходники, кроме нас, параноиков? ;-)

    • Возможно. Анализируя логи, я пришел к выводу, что боты часто ищут все им известные уязвимости.

      Версию WordPress очень легко установить по «отпечаткам пальцев» — достаточно посмотреть, какие файлы добавлены/удалены в новой версии WordPress. Плюс можно проанализировать содержимое скриптов и таблиц стилей — они меняются от версии к версии.

      У dd32 (Dion Hulse) есть даже простой анализатор: What version of WordPress is behind that website? Довольно простая реализация:

      [-]
      View Code Text
      69.163.231.151 "GET / HTTP/1.0"
      69.163.231.151 "GET /?feed=rss2 HTTP/1.0"
      69.163.231.151 "HEAD /readme.html HTTP/1.0"
      69.163.231.151 "HEAD /wp-includes/js/tinymce/tiny_mce.js HTTP/1.0"
      69.163.231.151 "HEAD /wp-includes/js/tinymce/plugins/wordpress/editor_plugin.js HTTP/1.0"
      69.163.231.151 "HEAD /wp-includes/js/jquery/jquery.js HTTP/1.0"
      69.163.231.151 "HEAD /wp-admin/js/postbox.js HTTP/1.0"
      69.163.231.151 "HEAD /wp-includes/images/smilies/icon_arrow.gif HTTP/1.0"
      69.163.231.151 "HEAD /wp-admin/css/login.css HTTP/1.0"
      69.163.231.151 "HEAD /wp-admin/css/wp-admin.css HTTP/1.0"
      69.163.231.151 "HEAD /wp-admin/wp-admin.css HTTP/1.0"

Пожалуйста, не используйте эту форму для комментирования! Данная форма предназначена исключительно для ботов.

Оставить комментарий к записи «Google XML Sitemaps: убираем версию и сигнатуру из карты сайта»

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Оставляя комментарий, вы выражаете своё согласие с Правилами комментирования.

Подписаться, не комментируя

गते गते पारगते पारसंगते बोधि स्वाहा