Визначте версію Magento без доступу до бази коду


22

Чи є спосіб знайти версію Magento, що використовується, не маючи доступу до однобічного коду сервера?

Наприклад, як працює цей плагін

https://chrome.google.com/webstore/detail/magento-version-check/aekpbnbbbgocohlbdpdfgghamedmplal

Мої думки - перевірити наявність LICENSE.txtчи LICENSE_EE.txt. Ви можете принаймні визначити CE проти EE.

Ви також можете використовувати рік авторських прав за замовчуванням, styles.cssщоб сформувати здогадки.

Хтось ще знає кращий спосіб?


3
Ваш власний інструмент здається досить точним ...
Пітер О'Каллаган

Відповіді:


26

Magento 1.x

Повідомлення про авторські права /skin/frontend/default/default/css/styles.cssвже є хорошим показником.

Це різні повідомлення про авторські права на Magento CE:

Version             @copyright
------------------------------------------------------------------------------------------------
Magento 1.9         Copyright (c) 2006-2014 X.commerce, Inc. (http://www.magento.com)
Magento 1.8         Copyright (c) 2013 Magento Inc. (http://www.magentocommerce.com)
Magento 1.7         Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
Magento 1.6         Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
Magento 1.4.1-1.5   Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
Magento 1.4.0       Copyright (c) 2009 Irubin Consulting Inc. DBA Varien (http://www.varien.com)
Magento 1.0-1.3     Copyright (c) 2008 Irubin Consulting Inc. DBA Varien (http://www.varien.com)

Для розрізнення 1.4 і 1.5 слід зробити фактичну відмінність від файлів. Цей дзеркальний сховище на GitHub може допомогти:

https://github.com/OpenMage/magento-mirror/commits/magento-1.5/skin/frontend/default/default/css/styles.css

Magento 2.x

Для магазинів Magento 2 ви отримуєте версію на срібній тарілці до тих пір, поки Magento_Versionмодуль не вимкнений. Просто завітайте shop-domain.tld/magento_version. Приклад виводу:

Magento/2.1 (Community)

Однак немає інформації про точну версію патча.

Якщо модуль версії вимкнено або доступ до цієї URL-адреси заблокований, ви також можете перевірити таблицю стилів за замовчуванням /static/frontend/Magento/blank/en_US/css/print.css. Але до цих пір повідомлення про авторські права мало що говорить:

Version             @copyright
------------------------------------------------------------------------------------------------
Magento 2.0         Copyright © 2016 Magento.
Magento 2.1         Copyright © 2016 Magento.

як я можу побачити, чи Magento CE чи EE?
Володимир Деспотович

Відкрийте URL-адресу, яка існує лише в EE
Fabian Schmengler

Оскільки я не знаю, яка URL-адреса існує лише в EE, я побачив, що різниця між EE і CE також полягає в кількості полів в admin_role. У СЕ в ньому є 7 полів, а в ЕЕ - ще близько 3, тобто близько 10 або близько того. Також вирішив мою проблему з виданням Magento.
Володимир Деспотович

17

Якщо в магазині все ще встановлений модуль Magento Connect і він не цілеспрямовано блокує URL-адресу з загальнодоступного доступу до простого веб-сайту http://www.website.com / downloader, версія буде показана внизу відповідно до цього зображення.

Технічно я думаю, що це версія пакета Downloader, але я ніколи не бачив, щоб вона відповідала загальній версії Magento.

введіть тут опис зображення


Що означає, якщо ви перейдете до завантажувача / Maged / Controller.php і подивіться, public static function getVersionInfo()чи є масив, який показує версію. Я думаю, що ця версія також відповідає версії Magento.
Buttle Butkus

8

Для ідентифікації версії можна використовувати хеші MD5 публічних файлів (зображень, css, js).

Це сховище містить список хеш для файлів js, mediaі skinпапок.

Ось унікальні хеші у jsonформаті

{
    "skin/adminhtml/default/default/boxes.css": {
        "6aefb246b1bb817077e8fca6ae53bf2c": "CE 1.2.0, CE 1.2.0.1, CE 1.2.0.2, CE 1.2.0.3", 
        "84b67457247969a206456565111c456b": "CE 1.1.2, CE 1.1.3, CE 1.1.4", 
        "0902e89fb50b22d44f8242954a89300c": "EE 1.12.0.0", 
        "8a5c088b435dbcf1bbaac9755d4ed45f": "EE 1.12.0.1, EE 1.12.0.2", 
        "1cbeca223c2e15dcaf500caa5d05b4ed": "CE 1.7.0.0", 
        "d0511b190cdddf865cca7873917f9a69": "CE 1.1.1", 
        "a2c7f9ddda846ba76220d7bcbe85c985": "CE 1.2.1, CE 1.2.1.1, CE 1.2.1.2"
    }, 
    "js/mage/adminhtml/sales.js": {
        "a86ad3ba7ab64bf9b3d7d2b9861d93dc": "CE 1.0", 
        "d80c40eeef3ca62eb4243443fe41705e": "CE 1.5.0.1", 
        "95e730c4316669f2df71031d5439df21": "CE 1.1.0", 
        "bdacf81a3cf7121d7a20eaa266a684ec": "CE 1.5.1.0", 
        "ba43d3af7ee4cb6f26190fc9d8fba751": "EE 1.14.1.0", 
        "c8dd0fd8fa3faa9b9f0dd767b5a2c995": "CE 1.9.1.1", 
        "4422dffc16da547c671b086938656397": "CE 1.4.2.0", 
        "0e400488c83e63110da75534f49f23f3": "CE 1.3.2, CE 1.3.2.1, CE 1.3.2.2, CE 1.3.2.3, CE 1.3.2.4", 
        "48d609bb2958b93d7254c13957b704c4": "CE 1.6.1.0, CE 1.6.2.0", 
        "40417cf4bee0e99ffc3930b1465c74ae": "EE 1.11.2.0", 
        "5656a8c1c646afaaf260a130fe405691": "CE 1.8.1.0", 
        "17da0470950e8dd4b30ccb787b1605f5": "CE 1.1.5, CE 1.1.6", 
        "aeb47c8dfc1e0b5264d341c99ff12ef0": "EE 1.11.0.2", 
        "ec6a34776b4d34b5b5549aea01c47b57": "EE 1.10.0.2", 
        "a0436f1eee62dded68e0ec860baeb699": "CE 1.9.1.0", 
        "5112f328e291234a943684928ebd3d33": "CE 1.1.7, CE 1.1.8", 
        "7ca2e7e0080061d2edd1e5368915c267": "EE 1.10.1.1", 
        "a4296235ba7ad200dd042fa5200c11b0": "CE 1.6.0.0", 
        "9a5d40b3f07f8bb904241828c5babf80": "EE 1.13.1.0", 
        "3fe31e1608e6d4f525d5db227373c5a0": "EE 1.13.0.0, EE 1.13.0.2", 
        "26c8fd113b4e51aeffe200ce7880b67a": "CE 1.8.0.0", 
        "839ead52e82a2041f937389445b8db04": "CE 1.3.3.0", 
        "d1bfb9f8d4c83e4a6a826d2356a97fd7": "CE 1.3.1, CE 1.3.1.1"
    }, 
    "js/mage/adminhtml/product.js": {
        "e887acfc2f7af09e04f8e99ac6f7180d": "CE 1.3.0"
    }, 
    "skin/frontend/rwd/default/css/styles.css": {
        "bf6c8e2ba2fc5162dd5187b39626a3a0": "CE 1.9.0.1", 
        "5373978891051983da47ac5064b4b2b9": "EE 1.14.0.1", 
        "8a874fcb6cdcb82947ee4dbbe1822f3e": "CE 1.9.0.0", 
        "bd66fd43fecd7ca1e293226bb11e1658": "EE 1.14.0.0"
    }, 
    "js/prototype/validation.js": {
        "295494d0966637bdd03e4ec17c2f338c": "CE 1.4.1.0", 
        "d3252becf15108532d21d45dced96d53": "CE 1.4.1.1"
    }, 
    "js/mage/adminhtml/tools.js": {
        "86bbebe2745581cd8f613ceb5ef82269": "CE 1.7.0.1, CE 1.7.0.2", 
        "ea81bcf8d9b8fcddb27fb9ec7f801172": "CE 1.3.2.2", 
        "d594237950932b9a3948288a020df1ba": "CE 1.3.2.3, CE 1.3.2.4, CE 1.3.3.0"
    }, 
    "js/lib/flex.js": {
        "4040182326f3836f98acabfe1d507960": "CE 1.4.0.1", 
        "eb84fc6c93a9d27823dde31946be8767": "CE 1.4.0.0"
    }
}

Наприклад, якщо ми перевіримо демонстраційний магазин Magento

$ curl -s http://demo.magentocommerce.com/skin/frontend/rwd/default/css/styles.css | md5
8a874fcb6cdcb82947ee4dbbe1822f3e

Ми бачимо, що відповідає хеш CE 1.9.0.0.

З це може виглядати так

$url = 'http://demo.magentocommerce.com/';

foreach ((array)json_decode(file_get_contents('hashes.json')) as $file => $hash) {
    $md5 = md5(file_get_contents($url . $file));
    if (isset($hash[$md5])) {
        echo $hash[$md5];
        break;
    }
}

Зверніть увагу, це може не спрацювати, якщо файли мінімізовані, виправлені, мають різні закінчення рядків тощо.


4

Якщо у вас є доступ до панелі адміністратора, ви можете перевірити це за допомогою нижнього колонтитула для версії magento

В іншому випадку, якщо дозвіл не змінено, ви можете перевірити файл RELEASE_NOTES.txt на версію magento, яка може легко визначити, чи це EE чи спільнота


0

Ні , це було б погано, якби воно було публічно розміщене. Безпека розумна, це нормально, не розказувати всім усім.

Іноді функціональність фронтену дасть вам добру здогадку. Тому що деякі функції просто реалізовані з моменту випуску x. Або контури побудовані таким чином, що спеціально для версії.

Те саме стосується модулів, якщо вони мають специфічну функціональність фронтену і маршрутизатори, що вказують на них або використання імені класу, це можна легко здогадатися.

Це можна зробити, хоча (усі потребують певного рівня доступу):

  • сервер (зазирнути app/Mage.php) і перевіритиapp/etc/modules
  • увійдіть в адміністративну панель і перегляньте версію в нижньому колонтитулі
  • запустіть сервер Magerun (ви можете зробити набагато більше)
  • Використовуйте виклик API magento.info

Як було сказано у запитанні, у мене немає доступу до сервера, тому ця відповідь не буде працювати для мене.
Стів Роббінс

0

Я використовував magescanдля визначення віддаленої версії Magento:

https://github.com/steverobbins/magescan

Він також може сканувати рівень патчу, інформацію про сервер, встановлені модулі, каталог, мапу сайту, недоступні шляхи і, звичайно, версію. Це PHP PHAR і його можна встановити разом із композитором.

Типове використання:

$ magescan.phar scan:all store.example.com
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.