Как удаленно определить версию WordPress?

27 февр. 2011 г., 23:12:52
Просмотры: 17.3K
Голосов: 4

Как инструмент DD32 определяет версию WordPress на сайте. Он не работает корректно с WP 3.1, при этом не использует meta generator тег или файл readme.txt WordPress. Какие еще могут быть способы определения?

1
Комментарии

Вы можете попробовать реверсивный инжиниринг: просто заставьте его проверить ваш собственный сайт и наблюдайте за HTTP-запросами, которые он генерирует.

mtekk mtekk
27 февр. 2011 г. 23:39:56
Все ответы на вопрос 3
0
12

Это немного кода, который я написал некоторое время назад для обнаружения версии WordPress наиболее очевидными способами: http://ottodestruct.com/class-wp-detection.phps

Существуют и другие методы, более тонкие и менее очевидные. Его метод - это анализ "отпечатков" файлов. По сути, проверка наличия или отсутствия определенных файлов.

28 февр. 2011 г. 02:52:26
3

Я просто предполагаю, но обычно это делается путем определения уникальных характеристик конкретных версионных файлов/директорий/кода, а иногда даже размера.

Например, вы можете удалить все мета-теги версий (а их разве не около 12 мест?) и .txt файл для версии 3.1, но поскольку 3.1 — единственная версия, которая по умолчанию включает следующий новый файл, её довольно легко идентифицировать.

wp-includes/js/l10n.js

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

28 февр. 2011 г. 00:31:37
Комментарии

Что вы имеете в виду под 12 мета тегами версии?

Simon Blackbourn Simon Blackbourn
28 февр. 2011 г. 00:36:23

Я понял вашу точку зрения, но +1 к вопросу Саймона

Ashfame Ashfame
28 февр. 2011 г. 01:26:31

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

Wyck Wyck
28 февр. 2011 г. 05:17:49
2

Я знаю, что уже есть принятый ответ, но просто поделюсь своим вариантом. Я делаю это, извлекая переменную $wp_version из файла 'wp-includes/version.php' в директории блога:

function get_wp_version() {
 $versionFile = ABS_PATH.'/wp-includes/version.php';
 // ФАЙЛ ВЕРСИИ ОТСУТСТВУЕТ //
 if (($versionStr = @file_get_contents($versionFile))=='') return ''; 

 $regex = "wp_version.*'(?<wpVersion>.*)'";
 if (preg_match('/'.$regex.'/', $versionStr, $matches)) {
  return $matches['wpVersion'];
 }
 return '';
}
28 февр. 2011 г. 03:16:14
Комментарии

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

Ashfame Ashfame
28 февр. 2011 г. 07:31:35

Кроме того, для работы этого нужно выполнение на том же сервере. Раньше не заметил. лол

Ashfame Ashfame
22 нояб. 2011 г. 16:42:58