Движки и их признаки
Есть куча движков блогов, форумов, вики-сайтов, гостевых книг, интернет-магазинов, а ещё есть много разных ЦМСок. Все они имеют свои признаки, которые можно с тем или иным успехом вытащить из генерируемого ими ХТМЛ-кода (или откуда-нибудь ещё).
Вот элемент head у меня на блоге:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<meta name="robots" content="index, follow" />
<base href="http://ilyabirman.ru/meanwhile/" />
<title>Блог Ильи Бирмана: Микс из «Гаража»
от 12 сентября</title>
<link rel="stylesheet" type="text/css" href="system/design/wiki.css" />
<link rel="stylesheet" type="text/css" href="system/design/main.css" />
<link rel="alternate" type="application/rss+xml" title="Блог Ильи Бирмана"
href="http://ilyabirman.ru/meanwhile/rss/" />
<link rel="alternate" type="application/rss+xml" title="Комментарии"
href="http://ilyabirman.ru/meanwhile/comments/rss/" />
<link rel="search" href="http://ilyabirman.ru/meanwhile/search/" />
<link rel="next" href="http://ilyabirman.ru/meanwhile/~2/" id="link-next" />
<script type="text/javascript" src="system/ctrl-navigation.js"></script>
</head>
Глядя на это, робот уже может вычислить, что тут стоит e2: он подключает ЦССки с хрефом вида system/design/(что-то там).css; подключает два РССа с адресом сайта плюс /rss/ и /comments/rss/; имеет навигационные ссылки на search, next.
Ещё на страницах, сгенерированных e2, как правило встречается подстрока:
<span title="e2 (версия)">Движок —
<a href="(ссылка на сайт)">e2 (название релиза)</a>
</span>
Кроме того, e2 шлёт ХТТП-хедер X-Powered-By: e2 (версия).
Прошу тех, кто знаком с какими-нибудь другими продуктами, написать мне, как их можно признать механическим способом. Нужно как можно больше продуктов. Спасибо.
NetCat можно опознать по именам файлов, хранимых в системе, типичное имя файла в файловой системе выглядит так:
/netcat_files/403/120/h_84442867d4596cc71a2167410ffe5090
Но шанс, что фалы будут на кадойс странице мал, нужно анализировать внутренние страницы, например каталоги прдуктов с картинками.
Еще можно опознать по формам добавления, они ведут на адрес /netcat/add.php
WordPress: наличие входа /wp-login.php
Drupal: Существование любого файла из дефолтного оформления, например: /admin/themes/_default/img/icons/icon_key.gif
cubiQue (фирма Laconix): наличие на странице /admin/login.php строки: <meta name=«home_url» content=«http://www.laconix.net/cubiQue»>
HostCMS: шлет заголовок X-Powered-By: HostCMS
Joomla очень часто оставляет <meta name=«generator» content=«Joomla! 1.5 — Open Source Content Management» />
многие движки можно опознать, если зайти example.com/admin/
Регистр: при заходе на /add.php видим: You have no rights to access this page. Sho! Sho! Go away!
Битрикс, вероятно, можно узнать по:
— выставлению заголовка «P3P: policyref=»/bitrix/p3p.xml», CP=«NON DSP COR CUR ADM DEV PSA PSD OUR UNR BUS UNI COM NAV INT DEM STA«»
— заголовку вида «X-Powered-CMS: Bitrix Site Manager (DEMO)»
Timelabs CMS выдаёт X-Powered-By: TimeLabs CMS v.1.294
фирма не существует, но на этой CMS ещё делают сайты
Если сайт выдаёт 403 на lib/mession.inc, но на lib/mession-404.inc выдаёт 404, то это старый framework «Казанского Портала» (на нём работают несколько крупных сайтов Казани).
X-Powered-By: XS2 v1.35.0.080814-1923
Движок называется XS2 (http://solutecs.com).
MediaWiki :)
Более новые версии надёжно опознаются через <meta name=«generator» content=«MediaWiki 1.*» />.
Более старые можно признавать по наличию где-нибудь (в <head>) скрипта .../common/wikibits.js и картинки .../common/images/poweredby_mediawiki_88x31.png (где-нибудь ближе к концу).
Я пользуюсь DokuWiki. В генерируемом коде есть <meta name=«generator» content=«DokuWiki Release 2008-05-05» />.
Вордпресс тоже выставляет Generator.
Wordpress на странице добавляет элемент, к примеру, <meta name=«generator» content=«WordPress 2.6.1» />, а в ссылках со страницы обычно присутствуют файлы с путями /wp-content/ и /wp-includes/
Nucleus CMS в заголовке пишет Generator Nucleus CMS v3.24
«Кроме того»
шутку оценил =)
DJEM, если создатель специальным образом не изменял маску создаваемых файлов, создает урлы вида /xxx/yyy/document666.phtml, где 666 — id документа. Плюс серверная точка входа системы в девяносто пяти процентах случаев присутствует и приветствует по адресу /cgi-bin/djem/djemserver.
Я думаю, что опиратся на метатег «generator» — не стоит. Даже в том же WordPress’е я могу туда написать, что угодно.
Сложнее всего менять структуру папок. Вы же и писали, что отследить можно по пути подключаемых файлов. Думаю это самый универсальный вариант — изучать структуру файлов и смотреть на файлы шаблона и стилей...
Invision Power Board: ссылки вида lofiversion/someting.php.