Déterminer la version de Magento sans accès à la base de code

22

Existe-t-il un moyen de trouver la version de Magento utilisée sans avoir accès au code côté serveur?

Par exemple, comment fonctionne ce plugin

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

Mes pensées sont de vérifier LICENSE.txtou LICENSE_EE.txt. Vous pouvez au moins déterminer CE vs EE.

Vous pouvez également utiliser l'année du droit d'auteur par défaut styles.csspour faire une supposition.

Quelqu'un d'autre connaît-il une meilleure façon?

Steve Robbins
la source
3
Votre propre outil semble être assez précis ...
Peter O'Callaghan

Réponses:

26

Magento 1.x

L'avis de droit d'auteur en /skin/frontend/default/default/css/styles.cssest déjà un bon indicateur.

Ce sont les différents avis de droits d'auteur pour 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)

Pour distinguer 1.4 et 1.5, vous devez faire une différence réelle avec les fichiers. Ce référentiel miroir sur GitHub pourrait aider:

https://github.com/OpenMage/magento-mirror/commits/magento-1.5/skin/frontend/default/default/css/styles.css

Magento 2.x

Pour les magasins Magento 2, vous obtenez la version sur une plaque d'argent tant que le Magento_Versionmodule n'est pas désactivé. Il suffit de visiter shop-domain.tld/magento_version. Exemple de sortie:

Magento/2.1 (Community)

Cependant, il n'y a aucune information sur la version exacte du correctif.

Si le module de version est désactivé ou que l'accès à cette URL est bloqué, vous pouvez également vérifier une feuille de style par défaut comme /static/frontend/Magento/blank/en_US/css/print.css. Mais jusqu'à présent, l'avis de droit d'auteur ne dit pas grand-chose:

Version             @copyright
------------------------------------------------------------------------------------------------
Magento 2.0         Copyright © 2016 Magento.
Magento 2.1         Copyright © 2016 Magento.
Fabian Schmengler
la source
comment puis-je voir si Magento est CE ou EE?
Vladimir Despotovic
Ouvrir une URL qui n'existe qu'en EE
Fabian Schmengler
Étant donné que je ne sais pas quelle URL existe uniquement dans EE, j'ai vu que la différence entre EE et CE réside également dans le nombre de champs dans admin_role. En CE, il y a 7 champs et en EE il y en a environ 3 de plus, donc environ 10 environ. J'ai également résolu mon problème avec la version édition de Magento.
Vladimir Despotovic
17

Si le magasin a toujours le module Magento Connect installé et ne bloque pas délibérément cette URL de l'accès public à peut simplement accéder à http://www.website.com / downloader, la version sera affichée en bas selon cette image.

Techniquement, je pense que c'est la version du package Downloader, mais je ne l'ai jamais vu ne pas correspondre à la version globale de Magento.

entrez la description de l'image ici

James Anelay - TheExtensionLab
la source
Ce qui signifie que si vous allez dans downloader / Maged / Controller.php et regardez, public static function getVersionInfo()il y a un tableau qui montre la version. Je suppose que cette version correspond également à la version Magento.
Buttle Butkus
8

Vous pouvez utiliser des hachages MD5 de fichiers publics (images, css, js) pour identifier la version.

Ce référentiel a une liste de hash des fichiers dans js, mediaet des skindossiers.

Voici les hachages uniques au jsonformat

{
    "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"
    }
}

Par exemple, si nous testons la boutique de démonstration Magento

$ curl -s http://demo.magentocommerce.com/skin/frontend/rwd/default/css/styles.css | md5
8a874fcb6cdcb82947ee4dbbe1822f3e

On voit que le hachage correspond à CE 1.9.0.0.

Avec cela pourrait ressembler

$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;
    }
}

Notez que cela peut ne pas fonctionner si les fichiers sont minifiés, corrigés, ont des fins de ligne différentes, etc.

Steve Robbins
la source
4

Si vous avez accès au panneau d'administration, vous pouvez le vérifier dans le pied de page pour la version magento

Sinon, si l'autorisation n'est pas modifiée, vous pouvez vérifier le fichier RELEASE_NOTES.txt pour la version de magento qui peut facilement dire s'il s'agit d'EE ou de la communauté

shabbir
la source
0

Non , ce serait mauvais s'il était affiché publiquement. En termes de sécurité, il est normal de ne pas tout dire à tout le monde.

Parfois, la fonctionnalité frontend vous donnera une bonne estimation. Parce que certaines fonctionnalités sont juste implémentées depuis l'édition x. Ou les chemins sont construits d'une manière qui est spécialement pour une version.

Il en va de même avec les modules, s'ils ont des fonctionnalités frontales spécifiques et des routeurs pointant vers eux ou l'utilisation du nom de classe, cela peut être facilement deviné.

Vous pouvez cependant le faire par (tous ont besoin d'un certain niveau d'accès):

  • côté serveur (jetez un œil app/Mage.php) et vérifiezapp/etc/modules
  • connectez-vous dans le panneau d'administration et voyez la version dans le pied de page
  • exécutez le serveur Magerun (vous pouvez faire beaucoup plus)
  • Utilisez l' appel API magento.info
Jeroen
la source
Comme mentionné dans la question, je n'ai pas d'accès côté serveur, donc cette réponse ne fonctionnera pas pour moi.
Steve Robbins
0

J'ai utilisé magescanpour déterminer une version distante de Magento:

https://github.com/steverobbins/magescan

Il peut également rechercher le niveau du correctif, les informations sur le serveur, les modules installés, le catalogue, le plan du site, les chemins inaccessibles et bien sûr la version. C'est un phar PHP et peut être installé avec composer.

Utilisation typique:

$ magescan.phar scan:all store.example.com
adejones
la source