Xác định phiên bản Magento mà không cần truy cập vào cơ sở mã


22

Có cách nào để tìm phiên bản Magento đang được sử dụng mà không cần truy cập vào mã phía máy chủ không?

Chẳng hạn, plugin này hoạt động như thế nào

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

Suy nghĩ của tôi là để kiểm tra LICENSE.txthay LICENSE_EE.txt. Bạn ít nhất có thể xác định CE vs EE.

Bạn cũng có thể sử dụng năm bản quyền theo mặc định styles.cssđể hình thành dự đoán.

Có ai khác biết một cách tốt hơn?


3
Công cụ của riêng bạn dường như khá chính xác ...
Peter O'Callaghan

Câu trả lời:


26

Magento 1.x

Thông báo bản quyền trong /skin/frontend/default/default/css/styles.cssđã là một chỉ số tốt.

Đây là những thông báo bản quyền khác nhau cho 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)

Để phân biệt 1.4 và 1.5, bạn nên thực hiện một khác biệt thực tế so với các tệp. Kho lưu trữ nhân bản này trên GitHub có thể giúp:

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

Magento 2.x

Đối với cửa hàng Magento 2, bạn có được phiên bản trên một tấm bạc miễn là Magento_Versionmô-đun không bị tắt. Chỉ cần truy cập shop-domain.tld/magento_version. Ví dụ đầu ra:

Magento/2.1 (Community)

Tuy nhiên, không có thông tin về phiên bản vá chính xác.

Nếu mô-đun phiên bản bị vô hiệu hóa hoặc quyền truy cập vào URL này bị chặn, bạn cũng có thể kiểm tra biểu định kiểu mặc định như thế nào /static/frontend/Magento/blank/en_US/css/print.css. Nhưng cho đến nay, thông báo bản quyền không nói nhiều:

Version             @copyright
------------------------------------------------------------------------------------------------
Magento 2.0         Copyright © 2016 Magento.
Magento 2.1         Copyright © 2016 Magento.

Làm thế nào tôi có thể xem liệu Magento là CE hay EE?
Vladimir Despotovic

Mở một URL chỉ tồn tại trong EE
Fabian Schmengler

Vì tôi không biết URL nào chỉ tồn tại trong EE, tôi đã thấy rằng sự khác biệt giữa EE và CE cũng nằm ở số lượng trường trong admin_role. Trong CE có 7 trường trong đó và trong EE có khoảng 3 trường nữa, khoảng 10 hoặc hơn. Cũng giải quyết vấn đề của tôi với phiên bản Magento phiên bản.
Vladimir Despotovic

17

Nếu cửa hàng vẫn cài đặt Mô-đun kết nối Magento và không cố ý chặn url đó khỏi quyền truy cập công cộng để chỉ có thể truy cập http://www.website.com / trình tải xuống , phiên bản sẽ được hiển thị ở dưới cùng theo hình ảnh này.

Về mặt kỹ thuật tôi nghĩ đây là phiên bản dành cho gói Downloader, nhưng tôi chưa bao giờ thấy nó không phù hợp với phiên bản Magento tổng thể.

nhập mô tả hình ảnh ở đây


Điều đó có nghĩa là nếu bạn truy cập downloader / Maged / Controller.php và xem public static function getVersionInfo()có một mảng hiển thị phiên bản. Tôi đoán phiên bản này cũng tương ứng với phiên bản Magento.
Butussy Butkus

8

Bạn có thể sử dụng băm MD5 của các tệp công khai (hình ảnh, css, js) để xác định phiên bản.

Kho này có một danh sách băm cho các tập tin trong js, mediaskinthư mục.

Dưới đây là các băm độc đáo trong jsonđịnh dạng

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

Chẳng hạn, nếu chúng tôi kiểm tra cửa hàng Magento demo

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

Chúng tôi thấy rằng băm tương ứng với CE 1.9.0.0.

Với nó có thể trông giống như

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

Lưu ý điều này có thể không hoạt động nếu các tệp được thu nhỏ, vá, có các kết thúc dòng khác nhau, v.v.


4

Nếu bạn có quyền truy cập vào bảng quản trị thì bạn có thể kiểm tra thông qua chân trang cho phiên bản magento

Mặt khác, nếu quyền không bị thay đổi, bạn có thể kiểm tra tệp RELEASE_NOTES.txt cho phiên bản magento có thể dễ dàng biết đó là EE hay cộng đồng


0

Không , nó sẽ là xấu nếu nó sẽ được đăng công khai. Bảo mật khôn ngoan là ok không nói mọi thứ với mọi người.

Đôi khi chức năng frontend sẽ cho bạn một dự đoán tốt. Bởi vì một số tính năng chỉ được thực hiện kể từ phiên bản x. Hoặc các đường dẫn được xây dựng theo cách đặc biệt dành cho phiên bản.

Tương tự với các mô-đun, nếu chúng có chức năng lối vào cụ thể và bộ định tuyến trỏ đến chúng hoặc sử dụng tên lớp, nó có thể dễ dàng đoán ra.

Bạn có thể làm điều này mặc dù (tất cả đều cần một mức truy cập nhất định):

  • máy chủ (hãy xem qua app/Mage.php) và kiểm traapp/etc/modules
  • đăng nhập vào adminpanel và xem phiên bản ở chân trang
  • chạy máy chủ Magerun (bạn có thể làm nhiều hơn nữa)
  • Sử dụng lệnh gọi API magento.info

Như đã đề cập trong câu hỏi, tôi không có quyền truy cập phía máy chủ nên câu trả lời này sẽ không hiệu quả với tôi.
Steve Robbins

0

Tôi đã từng magescanxác định phiên bản Magento từ xa:

https://github.com/steverobbins/magescan

Nó cũng có thể quét mức vá, thông tin máy chủ, mô-đun đã cài đặt, danh mục, sơ đồ trang web, đường dẫn không thể truy cập và tất nhiên là phiên bản. Đó là một phar PHP và có thể được cài đặt với trình soạn thảo.

Cách sử dụng điển hình:

$ magescan.phar scan:all store.example.com
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.