Bản vá bảo mật SUPEE-10570 - Các vấn đề có thể xảy ra?


45

Magento đã phát hành một bản vá bảo mật mới cho M1 và các bản cập nhật cho M1 và M2.

Những vấn đề tôi cần chú ý khi nâng cấp hoặc áp dụng bản vá này?

SUPEE-10570

SUPEE-10570, Magento Commerce 1.14.3.8 và Mã nguồn mở 1.9.3.8 chứa nhiều cải tiến bảo mật giúp đóng thực thi mã từ xa (RCE), tập lệnh chéo trang (XSS và các vấn đề khác. ghi chú phát hành.

MAGENTO 2.2.3, 2.1.12 VÀ 2.0.18 CẬP NHẬT BẢO MẬT

Magento Commerce và Mã nguồn mở 2.2.3, 2.1.12 và 2.0.18 chứa nhiều cải tiến bảo mật giúp đóng Tập lệnh chéo trang (XSS), thực thi mã từ xa của người dùng Admin (RCE) và các lỗ hổng khác. Các bản phát hành bao gồm sửa chữa chức năng bổ sung. Để tìm hiểu thêm về các bản sửa lỗi chức năng, vui lòng kiểm tra Ghi chú phát hành cho Magento Commerce 2.0.18, 2.1.12, 2.2.3 và Magento Open Source 2.0.18, 2.1.12, 2.2.3.


1
Đối với Mã nguồn mở / Phiên bản cộng đồng 1.x không có thay đổi mẫu frontend nào được đưa vào, do đó, điều này ít nhất không nên tạo ra quá nhiều rắc rối. Tuy nhiên - một bản sao lưu cơ sở dữ liệu rất được khuyến khích vì có hai tập lệnh cài đặt (nâng cấp) có trong bản vá này. Thông tin chi tiết có thể theo sau khi tôi vá các môi trường đầu tiên.
Christoph Farnleitner

1
Nếu bạn có cửa hàng sử dụng lưới adminhtml tùy chỉnh bao gồm tên cửa hàng, thì bản vá hiện có thể thoát khỏi nó để sửa một số khai thác tiềm năng dựa trên việc thay đổi tên cửa hàng và kết xuất.
Andrew Quackenbos

Tôi đã vá 2 trang web trên 1.9.0.1 mà không gặp vấn đề gì.
asdfasdfasf

1
Tôi đã áp dụng bản vá trên 1.9.3.0, 1.9.0.1 và 1.9.1.0 cho đến nay không có vấn đề gì
David

2
Đây là từ blog bảo mật: magento.com/security/patches/supee-10570 LƯU Ý: Một số khách hàng gặp sự cố khi thanh toán khi cố gắng tạo tài khoản trong khi thanh toán. Một bản vá cập nhật hoặc một cách giải quyết để khắc phục vấn đề này sẽ sớm được cung cấp. Nếu bạn đang gặp vấn đề này ngay bây giờ, hãy xem xét quay trở lại các phần của mã gây ra vấn đề này bằng cách áp dụng các bản vá sau: invalid_sesssion_fix.patch từ Cơ quan lưu trữ phát hành, phần SUPEE-10.570
Các Tankgirl

Câu trả lời:


29

Dưới đây là danh sách các tệp được sửa đổi bởi bản vá SUPEE-10570:

app/Mage.php 
app/code/core/Mage/Admin/Helper/Data.php
app/code/core/Mage/Admin/Model/Block.php 
app/code/core/Mage/Admin/Model/Resource/Block.php 
app/code/core/Mage/Admin/Model/User.php 
app/code/core/Mage/Adminhtml/Block/Catalog/Category/Edit/Form.php 
app/code/core/Mage/Adminhtml/Block/Catalog/Product/Grid.php 
app/code/core/Mage/Adminhtml/Block/Newsletter/Template/Grid/Renderer/Sender.php 
app/code/core/Mage/Adminhtml/Block/Sales/Order/Grid.php 
app/code/core/Mage/Adminhtml/Block/Sales/Order/View/Info.php 
app/code/core/Mage/Adminhtml/Block/System/Store/Edit/Form.php 
app/code/core/Mage/Adminhtml/Block/Tag/Assigned/Grid.php 
app/code/core/Mage/Adminhtml/Block/Widget/Grid/Column/Renderer/Store.php 
app/code/core/Mage/Adminhtml/Block/Widget/Tabs.php 
app/code/core/Mage/Adminhtml/Model/Config/Data.php 
app/code/core/Mage/Adminhtml/Model/System/Store.php 
app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php 
app/code/core/Mage/Adminhtml/controllers/CustomerController.php 
app/code/core/Mage/Adminhtml/controllers/System/BackupController.php
app/code/core/Mage/Core/Model/Session/Abstract/Varien.php
app/code/core/Mage/Core/Model/Variable.php
app/code/core/Mage/Customer/Helper/Data.php
app/code/core/Mage/Customer/Model/Resource/Customer.php
app/code/core/Mage/Customer/controllers/AccountController.php
app/code/core/Mage/Customer/etc/config.xml
app/code/core/Mage/Customer/sql/customer_setup/upgrade-1.6.2.0.1.1.1-1.6.2.0.1.1.2.php
app/code/core/Mage/Downloadable/etc/config.xml
app/code/core/Mage/Downloadable/etc/system.xml
app/code/core/Mage/Downloadable/sql/downloadable_setup/upgrade-1.6.0.0.2.1.1-1.6.0.0.2.1.2.php
app/code/core/Mage/ImportExport/Model/Import.php
app/code/core/Mage/ImportExport/Model/Import/Entity/Product.php
app/code/core/Mage/Shipping/Model/Info.php
app/code/core/Mage/Widget/controllers/Adminhtml/Widget/InstanceController.php
app/design/adminhtml/default/default/template/catalog/product/attribute/set/main.phtml
app/design/adminhtml/default/default/template/customer/tab/view.phtml
app/design/adminhtml/default/default/template/customer/tab/view/sales.phtml
app/design/adminhtml/default/default/template/dashboard/store/switcher.phtml
app/design/adminhtml/default/default/template/downloadable/product/composite/fieldset/downloadable.phtml
app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable/links.phtml
app/design/adminhtml/default/default/template/downloadable/sales/items/column/downloadable/creditmemo/name.phtml
app/design/adminhtml/default/default/template/downloadable/sales/items/column/downloadable/invoice/name.phtml
app/design/adminhtml/default/default/template/downloadable/sales/items/column/downloadable/name.phtml
app/design/adminhtml/default/default/template/newsletter/preview/store.phtml
app/design/adminhtml/default/default/template/report/store/switcher.phtml
app/design/adminhtml/default/default/template/sales/order/view/info.phtml
app/design/adminhtml/default/default/template/store/switcher.phtml
app/design/adminhtml/default/default/template/store/switcher/enhanced.phtml
app/design/adminhtml/default/default/template/system/convert/profile/wizard.phtml
app/design/adminhtml/default/default/template/tax/rate/title.phtml
app/design/adminhtml/default/default/template/widget/form/renderer/fieldset.phtml
app/locale/en_US/Mage_Catalog.csv
app/locale/en_US/Mage_ImportExport.csv
lib/Zend/Mail/Transport/Sendmail.php

BIÊN TẬP

Cuối cùng, sau khi triển khai trên trang web prod của tôi (CE 1.7.0.2), tôi nhận thấy một vấn đề chặn nghiêm trọng (quá trình thanh toán bị chặn).

Bối cảnh: sau địa chỉ bước 1, tôi trực tiếp tạo VÀ đăng nhập khách hàng, anh ta sẽ chỉ thấy bước thanh toán tiếp theo.

Vấn đề: sau supee-10570, quy trình thanh toán bị hỏng sau bước 1 (trong trường hợp tạo tài khoản) và khách hàng được chuyển hướng đến trang chủ (với giỏ hàng trống + đăng xuất) = không thể đạt được thanh toán của mình.

Khắc phục khẩn cấp: Trong trường hợp bạn gặp phải vấn đề tương tự với phiên thanh toán / khách hàng của mình, hãy nhận xét các dòng 414-430 từ ứng dụng / code / core / Mage / Core / Model / Session / Abstract / Varien.php (những thứ được thêm bởi bản vá , xem bên dưới).

//         if ($this->useValidateSessionPasswordTimestamp()
//             && isset($validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP])
//             && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
//             && $validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP]
//             > $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] - $this->getCookie()->getLifetime()
//         ) {
//             return false;
//         }

//         if ($this->useValidateSessionExpire()
//             && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
//             && $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] < time() ) {
//             return false;
//         } else {
//             $this->_data[self::VALIDATOR_KEY][self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP]
//                 = $validatorData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP];
//         }

CHỈNH SỬA (2)

Tôi nghĩ rằng điều kiện sau sẽ luôn trả về false (Mage_Core_Model_Session_Abauge_Varien tại các dòng 414-419, đặc biệt là các dòng 417 + 418).

if ($this->useValidateSessionPasswordTimestamp()
            && isset($validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP])
            && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
            && $validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP]
            > $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] - $this->getCookie()->getLifetime()
        ) {
        return false;

VALIDATOR_PASSWORD_CREATE_TIMESTAMP sẽ luôn lớn hơn VALIDATOR_SESSION_EXPIRE_TIMESTAMP. Dấu thời gian "hết hạn" phiên được xác định lại khi tạo tài khoản, do đó chắc chắn sẽ cũ hơn phiên init.

Vì vậy, ví dụ nếu bạn tạo khách hàng trong quá trình thanh toán, điều này sẽ trả về false và khách hàng sẽ bị đuổi (= thanh toán cuối, chuyển hướng đến trang chủ & giỏ hàng trống). Khá xấu.

Tôi đã báo cáo vấn đề này với nhóm magento. Tôi sẽ cung cấp thông tin phản hồi ở đây càng sớm càng tốt.


CHỈNH SỬA (3)

Một bản vá mới bị xóa (trên trang tải xuống bản vá magento, nó viết "SUPEE-10570 cho CE 1.7.0.0 - CẬP NHẬT B PATNG MỞ RỘNG, KHÔNG SỬ DỤNG (0,06 MB)").


EDIT (4) ~ 1 tháng sau khi báo cáo sự cố chặn ban đầu

Chào! Hy vọng bạn là tất cả hàng hóa (và hy vọng bạn không giữ trạng thái vá ban đầu cho đến bây giờ, trừ khi thu nhập kinh doanh của bạn có thể đã giảm nghiêm trọng ^^).

Tôi đã nhận thấy câu sau đây từ trang chính thức: "Magento hiện đang cung cấp một bản vá cập nhật (SUPEE-10570v2) không còn gây ra sự cố này nữa. Tuy nhiên, lưu ý rằng bản vá mới này không còn bảo vệ chống lại hai phiên xử lý rủi ro thấp liên quan đến xử lý. vấn đề bảo mật vá lỗi SUPEE-10570 được bảo vệ chống lại. " từ trang supee-10570 chính thức.

Trên trang phát hành, cuối cùng chúng ta cũng có thể tìm thấy tệp v2 (PATCH_SUPEE-10570_CE_v1.7.0.2_v2-2018-03-29-08-52-37.sh).

Tôi đã điều tra các sửa đổi chi tiết. Cuối cùng, có vẻ như nhóm magento chỉ quyết định bỏ một phần bảo mật của bản vá. Hy vọng lỗ hổng bảo mật này sẽ không gây ra thiệt hại nghiêm trọng (nó rất quan trọng theo ghi chú chính thức).

Sau khi hoàn nguyên v1 + áp dụng v2, vui lòng lưu ý các tệp sau được hoàn nguyên về trạng thái ban đầu (trước khi v1 được áp dụng):

app/code/core/Mage/Adminhtml/controllers/CustomerController.php
app/code/core/Mage/Customer/controllers/AccountController.php
app/code/core/Mage/Customer/Helper/Data.php
app/code/core/Mage/Customer/Model/Resource/Customer.php

PS: rõ ràng một số tệp khác cũng được sửa đổi, vui lòng kiểm tra cho phù hợp.


1
@Icon: tôi vừa báo cáo lỗi này cho magento. Tôi sẽ công bố câu trả lời ngay khi nhận được phản hồi chính thức.
DarkCowboy

4
@Icon / Soleil: Thật không may vẫn không có câu trả lời chính thức hoặc sửa chữa liên quan đến yêu cầu sửa lỗi của tôi.
DarkCowboy

1
@DarkCowboy Tôi chỉ nhận thấy rằng một khi bạn vào trang tải xuống bản vá, bạn có thể thấy nhóm Magento đã thêm một ghi chú trong bản vá 1.7.0.0 và 1.7.0.2. Hình như bản vá mới đang đến.
Biểu tượng

3
Chào mọi người. Tôi thấy một bản vá mới đã được thêm vào ("PATCH_SUPEE-10570_CE_v1.7.0.2_v1-2018-02-28-04-54-53.sh"). Bạn có thể thấy sự khác biệt ở đây (khung bên trái là bản vá đầu tiên "PATCH_SUPEE-10570_CE_v1.7.0.2_v1-2018-02-23-06-28-18.sh"): diffchecker.com/uGON91aR . Vì vậy, không có sửa chữa trên các bản vá mới?! Ngoài ra, thông báo "... ĐÃ ĐƯỢC CẬP NHẬT BẮT ĐẦU, KHÔNG SỬ DỤNG". Vì vậy, tôi hơi bối rối những gì nhóm cốt lõi magento đang làm với vấn đề này.
DarkCowboy 16/03/18

1
FYI, V2 của bản vá vẫn liệt kê "SUPEE-10570_CE_v1.9.2.4 | CE_1.9.2.4 | v1" trongapp/etc/applied.patches.list
Moose

9

(không chắc đây có phải là trong ghi chú phát hành từ đầu không)

Vấn đề đã biết

Hai vấn đề đã biết này có liên quan đến việc sử dụng thẻ HTML trong thuộc tính SKU của sản phẩm:

  • Nếu bạn cố gắng nhập các sản phẩm có chứa thẻ HTML trong thuộc tính SKU, Magento sẽ hiển thị lỗi này ở giai đoạn xác thực dữ liệu (nghĩa là khi bạn nhấp vào Kiểm tra dữ liệu ):
 Invalid value in SKU column. HTML tags are not allowed.
  • Nếu bạn cố gắng tạo hoặc chỉnh sửa sản phẩm trong bảng Quản trị và giá trị thuộc tính SKU của sản phẩm chứa các thẻ HTML, Magento sẽ đưa ra lỗi này khi bạn cố lưu sản phẩm: HTML tags are not allowed in SKU attribute.

Từ ghi chú vá :

Nếu bản vá không áp dụng trong khi vá lib/Zend/Mail/Transport/Sendmail.php, điều đó có thể có nghĩa là bản cài đặt Magento của bạn đã được vá trước đó với SUPEE-9652v1 thay vì SUPEE-9652v2. Giải pháp được đề xuất là hoàn nguyên bản vá SUPEE-9652v1 và áp dụng SUPEE-9652v2 trước khi áp dụng SUPEE-10570.


7

Tôi gặp vấn đề tương tự như @DarkCowboy sau khi áp dụng bản vá cho Magento CE 1.7.0.2.

Sau khi chọn đăng ký làm khách hàng mới trong quá trình thanh toán, việc đặt hàng sẽ tạo ra cả đơn hàng và khách hàng, nhưng thay vì hiển thị trang thành công của đơn hàng, tôi được chuyển hướng đến trang chủ và đăng xuất.

Giải pháp tôi đã tìm thấy là đảo ngược thứ tự của các khối mã trong các thay đổi thành app/code/core/Mage/Core/Model/Session/Abstract/Varien.php.

So sánh phiên bản vá với cùng một tệp trong Magento CE 1.9.3.8, tôi thấy các khối mới để xác thực hết hạn phiên và dấu thời gian mật khẩu theo thứ tự khác nhau.

Magento CE 1.9.3.8 - Dòng 476-491:

    if ($this->useValidateSessionExpire()
        && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
        && $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] < time() ) {
        return false;
    } else {
        $this->_data[self::VALIDATOR_KEY][self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP]
            = $validatorData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP];
    }
    if ($this->useValidateSessionPasswordTimestamp()
        && isset($validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP])
        && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
        && $validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP]
        > $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] - $this->getCookie()->getLifetime()
    ) {
        return false;
    }

Magento CE 1.7.0.2 - Dòng 414-430:

    if ($this->useValidateSessionPasswordTimestamp()
        && isset($validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP])
        && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
        && $validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP]
        > $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] - $this->getCookie()->getLifetime()
    ) {
        return false;
    }

    if ($this->useValidateSessionExpire()
        && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
        && $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] < time() ) {
        return false;
    } else {
        $this->_data[self::VALIDATOR_KEY][self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP]
            = $validatorData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP];
    }

Điều này dẫn đến giá trị $validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP]lớn hơn $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] - $this->getCookie()->getLifetime(), có nghĩa là phương thức luôn trả về false và xác thực thất bại.

Thay đổi mã trong Magento CE 1.7.0.2 để phù hợp với phiên bản trong Magento CE 1.9.3.8 khắc phục sự cố.

Mã kết quả cho Magento CE 1.7.0.2 - Dòng 414-430:


    if ($this->useValidateSessionExpire()
        && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
        && $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] < time() ) {
        return false;
    } else {
        $this->_data[self::VALIDATOR_KEY][self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP]
            = $validatorData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP];
    }
    if ($this->useValidateSessionPasswordTimestamp()
        && isset($validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP])
        && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
        && $validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP]
        > $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] - $this->getCookie()->getLifetime()
    ) {
        return false;
    }

Tôi khuyên bạn nên tạo tệp vá của riêng bạn và áp dụng trực tiếp vào tệp lõi (đây là cách tôi thường tiếp cận để sửa lỗi trong lõi). Điều này sẽ giúp bạn dễ dàng hoàn nguyên nếu Magento phát hành phiên bản 2 của bản vá.


Chào Dave. Có vẻ bạn gặp phải vấn đề tương tự hơn tôi. Về cách khắc phục của bạn, với sự đảo ngược của bạn, điều kiện thứ hai sẽ không được kiểm tra ... Tôi sẽ điều tra các dữ liệu phiên này.
DarkCowboy

4
Cập nhật cho 1.7.0.2 dự kiến ​​vào giữa tháng ba. (v2 của bản vá), vấn đề được xác nhận.
Piotr Kaminski

Có ai đã kiểm tra xem giải pháp này có thực sự giữ cho dấu thời gian thay đổi mật khẩu kiểm tra hoạt động không, hoặc nếu nó mở lại lỗ hổng bảo mật mà họ đang cố gắng vá? Lưu ý: Nếu bạn không quan tâm đến lợi ích bảo mật, bạn chỉ cần vô hiệu hóa kiểm tra dấu thời gian thay đổi mật khẩu bằng cách useValidateSessionPasswordTimestamp()quay lại false. (thay đổi một dòng trong cùng một tệp)
Eric Seastrand

Chào. Chúng tôi đã đánh giá rằng vấn đề "chuyển hướng với giỏ hàng trống" vẫn tồn tại với thứ tự xác nhận đã thay đổi. Chúng tôi đã tắt kiểm tra "useValidateSessionPasswordTimestamp" cho đến khi, magento tạo một bản cập nhật.
Steven Fritzsche

6

Chúng tôi đã thấy một trang trống tại / thanh toán / giỏ hàng sau khi áp dụng SUPEE-10570 và biên dịch. Chỉ cần làm rõ: Với trình biên dịch đã hủy kích hoạt, mọi thứ đều ổn, với trình biên dịch được kích hoạt, chúng tôi chỉ có thể thấy một trang giỏ hàng trống khi đăng nhập mà không có bất kỳ mục nhật ký nào (ngay cả sau khi kích hoạt tất cả các bản ghi có thể và chế độ nhà phát triển).

Giải pháp là thay đổi chức năng getPasswordTimestamp()trong app/code/core/Mage/Customer/Helper/Data.php(tất nhiên có nghĩa là : app/code/local/Mage/Customer/Helper/Data.php!) Và sử dụng Mage::getSingleton('core/resource')thay vì Mage::getModel('customer/customer')hoặc Mage::getSingleton('customer/session'). Vì vậy, thay thế toàn bộ chức năng, ví dụ như với các dòng mã này:

    $resource = Mage::getSingleton('core/resource');
    $readConnection = $resource->getConnection('core_read');
    $query = 'SELECT * FROM ' . $resource->getTableName('customer_entity').' WHERE `entity_id` = '.$customerId;
    $results = $readConnection->fetchAll($query);
    $result=$results[0];
    $date_created = Varien_Date::toTimestamp($result['created_at']);
    return $date_created;

Sau khi biên dịch lại vấn đề đã biến mất. Bất cứ ai khác với vấn đề này?

Giải thích bằng tiếng Đức ở đây .


Đây là trong nhiều cách khác nhau một số lời khuyên và mã tồi tệ nhất từng thấy ở đây. Xin đừng làm điều này ở nhà.
pong

Chính xác là như vậy với tôi. Bản vá này không hoạt động với trình biên dịch được kích hoạt.
Rafael Patro

Trong 1.9.3.9, nó hoạt động tốt với tôi.
TonkBerlin

4

1.7.0.0

Vá: PATCH_SUPEE-10570_CE_v1.7.0.0_v1-2018-02-23-06-37-58.sh

Lỗi này xảy ra nếu trước đây bạn chưa áp dụng SUPEE-9652 hoặc SUPEE-9767

patching file lib/Zend/Mail/Transport/Sendmail.php
Hunk #1 FAILED at 119.
Hunk #2 FAILED at 130.

Áp dụng các bản vá để khắc phục vấn đề.


2
Đảm bảo bạn đã cài đặt 9652 và 9767
Biểu tượng

Thật vậy, chúng tôi đã thử nghiệm SUPEE-10570 trên tất cả các phiên bản vanilla Magento kể từ 1.6.0.0 và tất cả đều hoạt động. Nhưng chỉ khi bạn áp dụng tất cả các bản vá trước đó. Tại đây, bạn có thể tra cứu những bản vá nào được yêu cầu: docs.google.com.vn/s
dàn tính / d / Từ

4

1.7.0.0

Patch PATCH_SUPEE-10570_CE_v1.7.0.0_v1-2018-02-23-06-37-58.sh Fileapp/code/core/Mage/Core/Model/Session/Abstract/Varien.php

Bản vá cho 1.7.0.0 chỉ thêm một hằng số:

+    const VALIDATOR_PASSWORD_CREATE_TIMESTAMP   = 'password_create_timestamp';

Tuy nhiên, nó bổ sung việc sử dụng hai hằng số mới, đáng chú ý là hằng số này:

+        if ($this->useValidateSessionPasswordTimestamp()
+            && isset($validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP])
+            && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
+            && $validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP]
+            > $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] - $this->getCookie()->getLifetime()
+        ) {
+            return false;
+        }

Điều này dẫn đến lỗi:

PHP Fatal error:  Uncaught Error: Undefined class constant 'VALIDATOR_SESSION_EXPIRE_TIMESTAMP' in 
app/code/core/Mage/Core/Model/Session/Abstract/Varien.php:406
Stack trace:
#0 
app/code/core/Mage/Core/Model/Session/Abstract/Varien.php(358): Mage_Core_Model_Session_Abstract_Varien->_validate()
#1 
app/code/core/Mage/Core/Model/Session/Abstract/Varien.php(176): Mage_Core_Model_Session_Abstract_Varien->validate()
#2 
app/code/core/Mage/Core/Model/Session/Abstract.php(84): Mage_Core_Model_Session_Abstract_Varien->init('core', 'frontend')
#3 
app/code/core/Mage/Core/Model/Session.php(42): Mage_Core_Model_Session_Abstract->init('core', 'frontend')
#4 
app/code/core/Mage/Core/Model/Config.php(1354): Mage_Core_Model_Session->__construct(Array)

Cách khắc phục:

Thêm một định nghĩa cho hằng số thứ hai này ở trên hoặc dưới hằng số đầu tiên được thêm bởi bản vá này.

const VALIDATOR_SESSION_EXPIRE_TIMESTAMP = 'session_expire_timestamp';

Cho đến nay tôi chưa thấy vấn đề này trong bất kỳ 1.9 nào. hoặc các bản vá 1.14.x, vì chúng xác định hằng số chính xác.


Điều này đã được vá bằng cách thêm const VALIDATOR_SESSION_EXPIRE_TIMESTAMP = 'session_expire_timestamp';vào đầu tệp, giống như được thực hiện trong hầu hết các phiên bản khác của bản vá này.
Tyler V.

Yep dường như là cụ thể cho bản vá
1.7.0.0

Tyler bạn có thể thêm bản sửa lỗi vào câu trả lời thực tế của bạn thay vì phần bình luận.
danmentzer

1
Ngoài ra tôi cũng chỉ lưu ý rằng điều này cũng ảnh hưởng đến các bản vá cho phiên bản EE của bản vá cũng như EE 1.12.0.0
danmentzer

3

Điều đầu tiên bạn nên kiểm tra, nếu trước đây bạn đã áp dụng đúng phiên bản SUPEE-6788 hoặc SUPEE-7405, nếu không hoàn nguyên phiên bản sai và sau đó áp dụng phiên bản chính xác của SUPEE-6788 / SUPEE-7405.

Sau đó thử lại để áp dụng SUPEE-10570.


2

Các tệp dưới đây được cập nhật / thêm sau khi áp dụng bản vá SUPEE - 10570 trong EE

@DarkCowboy cung cấp danh sách các tệp khác với tệp EE đó là:

    app/code/core/Enterprise/Cms/Block/Adminhtml/Cms/Hierarchy/Edit/Form.php
    app/code/core/Enterprise/Cms/Block/Adminhtml/Cms/Hierarchy/Widget/Chooser.php
    app/code/core/Enterprise/Cms/Block/Adminhtml/Cms/Page/Edit/Tab/Hierarchy.php
    app/code/core/Enterprise/Cms/Block/Hierarchy/Menu.php
    app/code/core/Enterprise/Customer/Block/Adminhtml/Customer/Attribute/Edit/Tab/Main.php
    app/code/core/Enterprise/GiftRegistry/Model/Observer.php
    app/code/core/Enterprise/Reward/Block/Adminhtml/Customer/Edit/Tab/Reward/Management/Update.php
    app/code/core/Enterprise/Rma/Model/Shipping/Info.php
    app/code/core/Enterprise/Staging/Block/Adminhtml/Backup/Grid.php
    app/code/core/Enterprise/Staging/Block/Adminhtml/Staging/Grid.php
 app/design/adminhtml/default/default/template/enterprise/cms/hierarchy/edit.phtml
    app/design/adminhtml/default/default/template/enterprise/cms/hierarchy/manage.phtml
    app/design/adminhtml/default/default/template/enterprise/cms/hierarchy/scope/switcher.phtml
    app/design/adminhtml/default/default/template/enterprise/cms/hierarchy/widget/radio.phtml
    app/design/adminhtml/default/default/template/enterprise/cms/page/preview/store.phtml
    app/design/adminhtml/default/default/template/enterprise/customer/website/switcher.phtml
    app/design/adminhtml/default/default/template/enterprise/invitation/view/tab/general.phtml
    app/design/adminhtml/default/default/template/enterprise/staging/log/information/create.phtml
    app/design/adminhtml/default/default/template/enterprise/staging/staging/edit/tabs/website.phtml
    app/design/adminhtml/default/default/template/enterprise/staging/staging/edit/tabs/website/store.phtml
    app/design/adminhtml/default/default/template/enterprise/staging/staging/merge/settings/website.phtml
    app/design/adminhtml/default/default/template/enterprise/store/switcher.phtml
    app/design/adminhtml/default/default/template/enterprise/store/switcher/enhanced.phtml
    app/design/adminhtml/default/default/template/merchandiser/new/page/html/top-buttons.phtml
    app/design/frontend/enterprise/default/template/cms/hierarchy/pagination.phtml

Một số lưu ý quan trọng

password_created_at được tạo trong bảng thuộc tính khách hàng.

app/code/core/Mage/Adminhtml/controllers/CustomerController.php
app/code/core/Mage/Core/Model/Session/Abstract/Varien.php
app/code/core/Mage/Customer/Helper/Data.php
app/code/core/Mage/Customer/Model/Resource/Customer.php
app/code/core/Mage/Customer/controllers/AccountController.php
app/code/core/Mage/Customer/sql/customer_setup/upgrade-1.6.2.0.5.1.1-1.6.2.0.5.1.2.php

Đây là những tập tin được sử dụng để tạo và xác nhận. sự cố phiên xảy ra khi thanh toán hoặc kiểm tra đăng nhập người dùng, bất kỳ tệp nào ở trên được ghi đè trong nhóm cục bộ của bạn hoặc Bất kỳ password_created_atthuộc tính nào được tạo trong bảng thuộc tính khách hàng của bạn và giá trị phù hợp được lưu trữ trong bảng đó.


Tôi không thể tìm thấy password_created_at trong cơ sở dữ liệu CE, nơi vấn đề cũng được đưa ra.
TonkBerlin

kiểm tra tệp này ứng dụng / mã / lõi / Pháp sư / Khách hàng / sql / customer_setup / nâng cấp-1.6.2.0.5.1.1-1.6.2.0.5.1.2.php
Rama Chandran M

2

Phiên bản magento của tôi là ver. 1.9.1.0.

Chúng tôi đã thấy một trang trống tại / thanh toán / giỏ hàng sau khi áp dụng SUPEE-10570 và biên dịch. Chỉ cần làm rõ: Với trình biên dịch đã hủy kích hoạt, mọi thứ đều ổn, với trình biên dịch được kích hoạt, chúng tôi chỉ có thể thấy một trang giỏ hàng trống khi đăng nhập mà không có bất kỳ mục nhật ký nào (ngay cả sau khi kích hoạt tất cả các bản ghi có thể và chế độ nhà phát triển).

Nguyên nhân:

  1. hàm getPasswordTimestamp sẽ gọi hai lần khi đăng nhập và truy cập / kiểm tra / giỏ hàng.

  2. trình biên dịch bị vô hiệu hóa cả công việc gọi.

  3. cho phép trình biên dịch chỉ công việc gọi đầu tiên, lần gọi thứ hai không thành công.

bất cứ ai có thể giải thích và đưa ra giải pháp tốt?


2

Một vấn đề với 1.7.0.2 tôi đã nhận thấy như sau:

  1. Thêm sản phẩm vào giỏ hàng và vào Checkout

  2. Nhấp vào "Đăng ký"

  3. Điền vào tất cả các thông tin đặt hàng cần thiết bao gồm, chi tiết thanh toán, vv
  4. Nhấp vào Hoàn tất đơn hàng.

VẤN ĐỀ VẤN ĐỀ TẠI ĐÂY

5. Tự động được chuyển hướng đến TRANG CHỦ. Bạn không được xem xác nhận số thứ tự. Nhưng trong thực tế, đơn hàng được đặt và tài khoản khách hàng được tạo.


Bạn đã tìm thấy giải pháp nào cho việc này chưa? Tôi đang phải đối mặt với vấn đề tương tự.
Parth Thummar

1
V2 của bản vá đã hết, sự cố đã được giải quyết
Biểu tượng

2

Tôi đã gặp vấn đề tương tự, Magento 1.9.3.8 đã thêm phương thức này vào lớp Mage_Customer_Helper_Data

/**
 * Get customer password creation timestamp or customer account creation timestamp
 *
 * @param $customerId
 * @return int
 */
public function getPasswordTimestamp($customerId)
{
    /** @var $customer Mage_Customer_Model_Customer */
    $customer = Mage::getModel('customer/customer')
        ->setWebsiteId(Mage::app()->getStore()->getWebsiteId())
        ->load((int)$customerId);
    $passwordCreatedAt = $customer->getPasswordCreatedAt();

    return is_null($passwordCreatedAt) ? $customer->getCreatedAtTimestamp() : $passwordCreatedAt;
}

Nếu bạn ghi đè lớp này trong thư mục Cục bộ (không phải cách thực hành tốt nhất), chúng tôi có thể có lỗi do lớp này tạo ra.


2

Bản vá này đã phá vỡ một số trình quản lý phân cấp CMS cho người dùng EE.

Điều này là do dòng bản vá sau đây chịu trách nhiệm thoát khỏi các cửa hàng / tên trang web và sửa lỗi APPSEC-1873/1979/1980.

diff --git app/design/adminhtml/default/default/template/enterprise/cms/hierarchy/manage.phtml app/design/adminhtml/default/default/template/enterprise/cms/hierarchy/manage.phtml
index e45298c..8bee617 100644
--- app/design/adminhtml/default/default/template/enterprise/cms/hierarchy/manage.phtml
+++ app/design/adminhtml/default/default/template/enterprise/cms/hierarchy/manage.phtml
@@ -36,7 +36,7 @@
             <div class="cms-popup-description"></div>
             <div class="fieldset">
                 <div class="cms-hierarchy manage-form">
-                    <?php echo $this->getFormHtml() ?>
+                    <?php echo $this->escapeHtml($this->getFormHtml()); ?>
                 </div>
             </div>
         </div>

Nó sẽ hiển thị bộ chọn cửa hàng ở bên trái nhưng thay vào đó nó hiển thị html ở bên phải. Nếu bạn thực sự cần chức năng này, bạn cần thực hiện một cuộc gọi bảo mật so với chức năng không tuyệt vời.

hiển thị thứ bậc bị phá vỡ


0

Lỗi chính xác tương tự như Tyler, trên Magento 1.9.2.4 Bản vá PATCH_SUPEE-10570_CE_v1.9.2.4_v1-2018-02-28-04-53-53.sh

checking file lib/Zend/Mail/Transport/Sendmail.php
Hunk #1 FAILED at 119.
Hunk #2 FAILED at 129.
2 out of 2 hunks FAILED

kiểm tra bạn đã cài đặt các bản vá trước đó. bản vá 9767 cụ thể
Rama Chandran M

Chạy một kiểm tra trên www.magereport.com và nó đã xác nhận rằng tất cả các bản vá đã được cài đặt.9767.
Roy Toledo

Tôi sẽ kiểm tra và cung cấp ans
Rama Chandran M

1
@royToledo Đảm bảo rằng bạn cũng đã áp dụng bản vá SUPEE-9652
Tyler V.

0

Nếu bạn có một số công cụ phát hiện bản vá, có lẽ bạn cần sửa đổi phát hiện SUPEE-9562SUPEE-10570sửa đổi cùng một tệp:

lib/Zend/Mail/Transport/Sendmail.php

0

Bản vá đã được Magento thay đổi âm thầm. Ở đây hiển thị với bản vá cho Magento 1.8.1.0-1.9.0.1. Lần tải xuống đầu tiên tôi đã nhận được tập tin

PATCH_SUPEE-10570_CE_v1.9.0.1_v1-2018-02-23-06-18-06.sh

Vài ngày sau tôi nhận được tập tin sau

PATCH_SUPEE-10570_CE_v1.9.0.1_v1-2018-02-28-04-54-29.sh

Diff cho thấy tệp cũ chứa các tệp từ Magento Enterprise Edition có giấy phép sai "Thỏa thuận cấp phép người dùng cuối Magento Enterprise Edition". Điều này đã được sửa thành "Giấy phép phần mềm mở (OSL 3.0)".


0

Bạn có thể gặp lỗi sau

Hunk #3 FAILED at 17 sau dòng

checking file app/code/core/Enterprise/Cms/Block/Adminhtml/Cms/Page/Edit/Tab/Hierarchy.php

Nó đã xảy ra với tôi trên phiên bản Magento 1.10.0.2EE. Nó đã xảy ra vì bản vá SUPEE-6285 không được áp dụng.

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.