코드로 마 젠토 버전을 공개하는 방법?


28

magento 버전을 알 수있는 클래스 파일이 있는지 알고 싶습니다. 사이트가 해킹당한 경우 버전을 공개하는 방법은 무엇입니까?

다음과 같은 방법이 있다는 것을 알고 있습니다.

Mage::getVersion();

그러나 magento 사이트의 프론트 엔드와 백엔드가 모두 작동하지 않으면 클래스 파일을 통해 어떻게 확인할 수 있습니까? 어느 수업을 참조해야합니까?


6
다운 투표자에 대한 고려 사항 : Magento SE는 개발자 와 사용자 모두를 대상으로합니다. 이 질문은 후자의 영역에 분명히 있습니다.
benmarks

Magento는 또한 기본 스킨 설치에서 정보를 유출합니다. 라이센스 상용구를 보면 아주 빨리 고정 할 수 있습니다.
Fiasco Labs

답변:


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.phpAlan Storm 이 기록한 곳에만 저장됩니다 . 당신은 텍스트 편집기에서 그것을 열고 앞 / 뒤가 부족한지 살펴보십시오. core_resource 테이블에서 모듈 버전을 조회 할 수 있습니다.이 번호는 module/etc/config.xml각 모듈 의 파일 에서 가져옵니다 . Mage.php파일이 없거나 수정 된 경우 다른 파일이 저장되어 있지 않습니다.
Fiasco Labs

@Fiasco Labs : 답변 주셔서 감사합니다. +1
Sukeshini

@Alan Storm : 훌륭하고 자세한 설명을 해주셔서 감사합니다. 언급 한대로 파일을 살펴 보았습니다.
Sukeshini

2
업그레이드 실패 또는 설치 실패로 인해 버전이 잘못 표시 될 수 있습니다 Mage.php. 내가 해킹당한 최근 사이트는 1.7.0.2를보고했지만 실제로 파일을 볼 때이 사이트가 여전히 1.6에 있음이 분명했습니다.
pspahn

5

우리는 현재 어떤 버전을 사용하고있는 마 젠토를 쉽게 찾을 수 있습니다.

루트 폴더 /app/Mage.php를여십시오.

168 라인 근처에서 다음 코드를 찾을 수 있습니다.

public static function 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설치 화면이 표시 되고이 화면의 바닥 글에는 설치 버전이 표시됩니다. 제 경우에는 해결책이었습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.