Як розкрити версію Magento за кодом?


28

Я хочу знати, чи є якийсь файл класу для того, щоб знати версію magento. Якщо сайт зламали, як розкрити версію?

Я знаю, що існує такий спосіб.

Mage::getVersion();

Але якщо і фронт, і сервіс на сайті magento не працюють, як ми можемо перевірити, переглянувши файли класів? До якого класу потрібно звернутися?


6
Призначення для тих, хто втратив чинність: Magento SE призначений і для розробників, і для користувачів . Це питання чітко в області останнього.
орієнтири

Magento також просочує інформацію в базовій установці шкіри. Переглянувши ліцензійну табличку, можна досить швидко її зафіксувати.
Лабораторії Фіаско

Відповіді:


36

Mage::getVersion()Метод визначається тут

#File: app/Mage.php
public static function getVersion()
{
    $i = self::getVersionInfo();
    return trim("{$i['major']}.{$i['minor']}.{$i['revision']}" . ($i['patch'] != '' ? ".{$i['patch']}" : "")
                    . "-{$i['stability']}{$i['number']}", '.-');
}

Переходячи до getVersionInfoпосилань вище, ми знаходимо наступне

#File: app/Mage.php
public static function getVersionInfo()
{
    return array(
        'major'     => '1',
        'minor'     => '7',
        'revision'  => '0',
        'patch'     => '2',
        'stability' => '',
        'number'    => '',
    );
}

Отже, Magento використовує масив, повернутий getVersionInfoметодом, для створення номера версії. Ми можемо це зробити вручну (з розумом) і придумати версію 1.7.0.2 для перерахованого вище методу. Якби ми знайшли

public static function getVersionInfo()
{
    return array(
        'major'     => '1',
        'minor'     => '5',
        'revision'  => '0',
        'patch'     => '0',
        'stability' => 'beta',
        'number'    => '1',
    );
}

Ми б знали, що версія була першою бета-версією 1.5.0.0.

Однак, якщо сайт зламали, всі ставки вимикаються - оскільки хакери, ймовірно, змінили файли декількох класів та створили версію Magento, яка не існує.


Отже, якщо сайт був зламаний, а у нас також немає резервного копіювання, немає жодного належного способу отримати точну версію? (Припустимо, хакери також були змінені вище функцій)
Sukeshini

4
Номер версії програми Magento зберігається лише app/Mage.phpтам, де відмічає Алан Шторм. Ви відкриваєте його в текстовому редакторі і дивитесь, чи передня / задня частина не є справною. Ви можете шукати версію модуля в таблиці core_resource, ці номери імпортуються з module/etc/config.xmlфайлів кожного модуля. Якщо Mage.phpфайл відсутній або модифікований, я не знаю іншого місця, де він зберігається.
Лабораторії Фіаско

@Fiasco Labs: Дякую за відповідь. +1
Сукешині

@Alan Storm: Дякую за приємне та детальне пояснення. Я переглянув файли, як ви згадали.
Сукешині

2
Майте на увазі, що невдала / ботована установка оновлення може неправильно відобразити версію в Mage.php. Недавній сайт, на якому я працював, був зламаний, повідомляв про 1.7.0.2, але, переглядаючи файли, було зрозуміло, що цей сайт все ще на 1.6.
pspahn

5

Ми можемо знайти магенто, яку версію зараз легко використовувати.

Просто відкрийте свою кореневу папку /app/Mage.php

Близько 168 рядка, ви можете знайти наступний код

публічної статичної функції getVersionInfo ()

{

    return array(

        'major'     => '1',

        'minor'     => '9',

        'revision'  => '0',

        'patch'     => '1',

        'stability' => '',

        'number'    => '',

    );

} 

Це означає, що зараз ми використовуємо версію 1.9.0.1.


5

якщо зламано, вам потрібно відновити резервну копію, а потім ви можете запустити цю команду з кореневої папки magento, щоб швидко перевірити версію:

echo "Version: $(php -r "require 'app/Mage.php'; echo Mage::getVersion();")"

Version: 1.9.2.3

або навіть швидше:

grep -A 10 "function getVersionInfo" app/Mage.php 

public static function getVersionInfo()
{
    return array(
        'major'     => '1',
        'minor'     => '9',
        'revision'  => '2',
        'patch'     => '3',
        'stability' => '',
        'number'    => '',
    );
}

1

Простий спосіб перейменування app/etc/local.xmlв app/etc/local.xml.bkpбраузер буде відображатися екран установки, в виносці цього екрану показує версію установки, в моєму випадку це було рішенням.


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