确定Magento版本而不访问代码库


22

有没有一种方法可以找到正在使用的Magento版本无需访问服务器端代码?

例如,此插件如何工作

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

我的想法是检查LICENSE.txtLICENSE_EE.txt。您至少可以确定CE与EE。

您还可以使用默认的版权年份styles.css来进行猜测。

还有谁知道更好的方法吗?


3
您自己的工具似乎相当准确...
Peter O'Callaghan

Answers:


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?
弗拉基米尔·德斯波托维奇

打开仅在EE中存在的URL
Fabian Schmengler 17-10-23

由于我不知道哪个URL仅存在于EE中,因此我看到EE和CE之间的区别还在于admin_role中的字段数。在CE中,有7个字段,在EE中,大约还有3个字段,因此大约有10个左右。Magento的版本也解决了我的问题。
弗拉基米尔·德斯波托维奇

17

如果商店仍然安装了Magento Connect模块,并且没有故意阻止该URL公开访问,则只能访问http://www.website.com / downloader,该版本将按照此图像显示在底部。

从技术上讲,我认为这是Downloader软件包的版本,但我从未见过它与总体Magento版本不匹配。

在此处输入图片说明


这意味着如果您转到downloader / Maged / Controller.php并查看public static function getVersionInfo()有一个显示版本的数组。我猜这个版本也对应于Magento版本。
Buttle Butkus

8

您可以使用公共文件(图像,css,js)的MD5哈希值来识别版本。

该存储库具有哈希列表中的文件jsmediaskin文件夹。

这是其中的独特哈希 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(您可以做很多事情)
  • 使用magento.info API调用

如问题中所述,我没有服务器端访问权限,因此此答案对我不起作用。
Steve Robbins

0

我曾经magescan确定过远程的Magento版本:

https://github.com/steverobbins/magescan

它还可以扫描补丁程序级别,服务器信息,已安装的模块,目录,站点地图,无法访问的路径,当然还有版本。这是一个PHP Phar,可以与composer一起安装。

典型用法:

$ magescan.phar scan:all store.example.com
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.