如何通过代码显示Magento版本?


28

我想知道是否有任何类文件可用于了解magento版本。如果网站已被黑客入侵,如何显示版本?

我知道有一种方法如下。

Mage::getVersion();

但是,如果magento网站的前端和后端均无法正常工作,我们如何通过类文件进行检查?哪个班需要参考?


6
反对投票的人的考虑:Magento SE既适合开发人员也适合用户。这个问题显然是在后者的领域。
benmarks 2014年

Magento还会在其基础皮肤安装中泄漏信息。通过查看许可证样板,可以很快将其固定下来。
Fiasco Labs

Answers:


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的第一个beta。

就是说,如果该站点被黑客入侵,那么所有的赌注都将落空-因为黑客可能修改了多个类文件并创建了一个不存在的Magento版本。


因此,如果该站点已被黑客入侵并且我们也没有备份,那么是否有任何适当的方法来获取确切的版本?(假设黑客也已在上述功能上进行了修改)
Sukeshini 2014年

4
Magento应用程序版本号仅存储在app/Mage.phpAlan Storm记录的地方。您可以在文本编辑器中打开它,然后查看前面/后面是否已消失。您可以在core_resource表中查找模块版本,这些数字是从module/etc/config.xml每个模块的文件中导入的。如果Mage.php文件丢失或被修改,那么我就知道没有其他地方可以存储它。
Fiasco Labs

@Fiasco Labs:感谢您的回复。+1
Sukeshini 2014年

@Alan Storm:感谢您的详细说明。我按照您提到的方式浏览了文件。
Sukeshini 2014年

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.xmlapp/etc/local.xml.bkp浏览器,将显示安装屏幕,在该屏幕的页脚处显示安装版本,在我看来,这就是解决方案。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.