Загрузка...

Добрый день, уважаемые читатели блога Site on! Комментарий к прошлой статье о скрытии признаков Joomla заставил меня немного углубиться в эту тему. В этой статье я расскажу, как скрыть ещё один характерный признак Joomla, а также как скрыть любую CMS от любого сервиса проверки.

В этот раз могу смело утверждать, что мне удалось скрыть свою CMS от абсолютно любого online сервиса, даже от тех, которые заточены только под конкретную CMS, например, http://isthissitebuiltwithdrupal.com

Однако плагин Wappalyzer всё ещё остаётся не решённой задачей, скоро вы поймёте почему, а пока давайте как раз о нём и поговорим.

Как скрыть свою CMS от плагина Wappalyzer ?

В первом комментарии к прошлой статье с нами поделились ссылкой на исходники этого плагина, чтобы не заставлять вас переходить по ссылке выложу здесь критерии проверки для наиболее популярных CMS (Joomla, Wordpress, Drupal):

Код:
"Joomla": { 
      "url": "option=com_", 
      "meta": { "generator": "Joomla!(?: ([\\d.]+))?\\;version:\\1" }, 
      "html": "(?:<div[^>]+id=\"wrapper_r\"|<[^>]+(?:feed|components)/com_|<table[^>]+class=\"pill)\\;confidence:50", 
      "headers": { "X-Content-Encoded-By": "Joomla! ([\\d.]+)\\;version:\\1" }, 
      "env": "^(jcomments|Joomla)$", 
      "implies": "PHP" 
}, 
"WordPress": { 
      "meta": { "generator": "WordPress( [\\d.]+)?\\;version:\\1" }, 
      "html": "]+wp-content", 
      "env": "^wp_username$", 
      "implies": "PHP" 
}, 
"Drupal": { 
      "script": "drupal\\.js", 
      "html": "<(?:link|style)[^>]+sites/(?:default|all)/(?:themes|modules)/", 
      "headers": { "X-Drupal-Cache": ".*", "X-Generator": "Drupal(?:\\s([\\d.]+))?\\;version:\\1", "Expires": "19 Nov 1978" }, 
      "env": "^Drupal$", 
      "implies": "PHP" 
}

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

Хотя может быть я ошибаюсь, и кто-то уже давно решил эту задачу?

Однако, не смотря на то, что плагин я не одолел, я заметил ещё один характерный признак Joomla, по которому блуждающие боты смогут определить Вашу CMS. Это посылаемые заголовки сервера. Я как-то читал тему на форуме, в которой писали что-то типа: «Настройте правильные заголовки, и вашу CMS будет практически невозможно распознать». Это конечно пыль в глаза, так как этого мало, но доля истины в этом есть, вполне возможно, что некоторые боты распознают CMS Joomla и другие CMS только по заголовкам сервера.

Так вот Joomla посылает их аж два: один посылает слово Joomla, а второй даже её версию - Joomla25. Исправить это очень легко, заходим в файл \libraries\joomla\application\web.php и ищем 449 строку, в которой будет такой фрагмент:

$this->setHeader('X-Content-Encoded-By'

Меняем всю эту строку на следующую:

$this->setHeader('X-Content-Encoded-By', 'unknown');

Теперь заходим в следующий файл \libraries\joomla\environment\response.php и ищем 299 строку, которая будет содержать такой фрагмент:

self::setHeader('X-Content-Encoded-By'

Меняем её на:

self::setHeader('X-Content-Encoded-By', 'unknown');

Готово, мы скрыли ещё один характерный признак использования Joomla.

Как скрыть движок сайта от builtwith.com и любого другого сервиса проверки CMS?

Всё написанное далее уже никак не относится к оптимизации сайта, это скорее решение конкретной задачи.

После раздумий о том, как можно было бы проще скрыть CMS от Wappalyzer, я пришёл к выводу, что чем проделывать объёмную работу, лучше рубить проблему под корень. Я решил, что нужно закрыть доступ к сайту для всех сервисов проверки, чем изменять структуру всей CMS, а как это сделать? Например, банальным "баном" по IP.

После этого, в ходе незамысловатых манипуляций, я узнал IP всех интересующих меня сервисов… ну что, начнём?

Буду краток, впишете этот код в любом месте файла .htaccess, который лежит в корне вашего сайта:

Order Allow,Deny
Allow from All

# Диапозон ITrack.ru
deny from 144.76.

# Диапозон 2ip.ru
deny from 188.40.74.

# IP адрес buildwith.com, вроде IP статичен
deny from 198.27.69.78

# Но если вдруг окажется, что нет, то вот весь диапозон buildwith.com.
# Если решили перестраховаться и вписать весь диапозон, то предыдущий IP
# вписывать не надо, он входит в диапозон ниже:
deny from 198.22.98.0/23
deny from 198.22.100.0/22
deny from 198.22.104.0/21
deny from 198.22.112.0/20
deny from 198.22.128.0/17
deny from 198.23.0.0/16
deny from 198.24.0.0/13
deny from 198.32.0.0/14
deny from 198.36.0.0/19

После вставки этого кода, ни один сервис для проверки CMS не сможет распознать движок вашего сайта и любые другие используемые Вами технологии, так как сервисы в ответ будут получать ошибку 403 (доступ запрещён).

{

}