कोड द्वारा Magento संस्करण कैसे प्रकट करें?


28

मैं जानना चाहता हूं कि क्या कोई क्लास फाइल मैजेंटो वर्जन को जानने के लिए उपलब्ध है। यदि साइट को हैक किया गया है तो संस्करण को कैसे प्रकट किया जाए?

मुझे पता है कि वहाँ एक रास्ता इस प्रकार है।

Mage::getVersion();

लेकिन अगर मैग्नेटो साइट का फ्रंटएंड और बैकेंड दोनों काम नहीं कर रहा है, तो हम क्लास की फाइलों के माध्यम से कैसे जांच कर सकते हैं? किस वर्ग को संदर्भित करना है?


6
डाउन-वोटर्स के लिए एक विचार: मैगेंटो एसई डेवलपर्स और उपयोगकर्ताओं के लिए समान है। यह सवाल स्पष्ट रूप से उत्तरार्द्ध के क्षेत्र में है।
बर्थमार्क

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 का 1 बीटा था।

उस ने कहा, यदि साइट को हैक कर लिया गया है, तो सभी दांव बंद हैं - क्योंकि हैकर्स की संभावना कई वर्ग फ़ाइलों को संशोधित करके मैगनेटो का एक संस्करण बनाने की है जो मौजूद नहीं है।


इसलिए यदि साइट हैक हो गई है और हमारे पास बैकअप भी नहीं है, तो सटीक संस्करण प्राप्त करने का कोई उचित तरीका नहीं है? (मान लें कि हैकरों को उपरोक्त कार्यों के रूप में अच्छी तरह से संशोधित किया गया है)
सुकेशिनी

4
Magento अनुप्रयोग संस्करण संख्या केवल उस स्थान पर संग्रहीत है app/Mage.phpजहाँ एलन स्टॉर्म नोट करता है। आप इसे टेक्स्ट एडिटर में खोलते हैं और देखते हैं कि सामने / पीछे डिफेक्ट है या नहीं। आप core_resource तालिका में मॉड्यूल संस्करण देख सकते हैं, ये संख्याएँ module/etc/config.xmlप्रत्येक मॉड्यूल के लिए फ़ाइलों से आयात की जाती हैं । यदि Mage.phpफ़ाइल गुम या संशोधित है, तो कोई अन्य जगह नहीं है जो मुझे पता है कि इसे संग्रहीत किया जा रहा है।
फासको लैब्स

@ फ़िस्को लैब्स: प्रतिक्रिया के लिए धन्यवाद। +1
सुकेशिनी

@ एलन स्टॉर्म: अच्छे और विस्तृत विवरण के लिए धन्यवाद। मैंने आपके द्वारा बताई गई फाइलों के माध्यम से जाना।
सुकेशिनी

2
ध्यान रखें कि विफल / बॉटेड अपग्रेड इंस्टॉलेशन संस्करण को गलत तरीके से प्रदर्शित कर सकता है Mage.php। हाल ही में जिस साइट पर मैंने काम किया था, वह हैक हो गई थी, वह 1.7.0.2 रिपोर्टिंग कर रही थी लेकिन जब वास्तव में फाइलों को देख रही थी तो यह स्पष्ट था कि यह साइट अभी भी 1.6 पर थी।
pspahn

5

हम Magento पा सकते हैं कि कौन सा संस्करण अब आसानी से उपयोग कर रहा है।

बस अपना मूल फ़ोल्डर खोलें /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 Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.