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


108

Bản vá bảo mật Magento 1 mới nhất SUPEE-8788 chứa 17 bản cập nhật APPSEC , vì vậy điều rất quan trọng là phải áp dụng nó càng sớm càng tốt. Mặt khác, có nhiều khả năng tương thích ngược tiềm năng và do lịch sử của các bản vá trong năm qua, tôi sẽ không áp dụng nó một cách bất cẩn.

Điều tốt là lần này không có mẫu frontend nào tham gia, nên có vẻ như chúng ta không cần phải vá tất cả các chủ đề của mình. Điều này chỉ đúng với Magento 1.8 trở lên.

Tuy nhiên: Bạn có gặp phải bất kỳ vấn đề tương thích hoặc lỗi sau khi áp dụng bản vá không?


6
"không có mẫu frontend nào liên quan" - không đúng với các phiên bản Magento cũ hơn. Ví dụ, bản vá 1.7.0.2 thay đổi 9 tệp mẫu frontend / base / default.
Kristof tại Fooman

magento.stackexchange.com/questions/140571/ Giả mạo cái này? Có thể gói tất cả thông tin ở đây ...
7ochem

2
Đối với bất kỳ ai gặp vấn đề với các bản cập nhật .swf của bản vá, tôi chỉ cần xóa các dòng 5951-9818 khỏi bản vá và xóa thủ công các tệp .swf khỏi /skin/adminhtml/default/default/media- vì đó là tất cả các bản vá đang thực hiện.
Liam McArthur

không chắc chắn tại sao nhưng sau khi cài đặt 8788 vào 1.8.0.0, hãy vá 7405 báo cáo là KHÔNG cài đặt. trong khi v1 và v1.1 đã được cài đặt trước đó
MagenX

2
@srinivas bạn đã xóa thư mục media khỏi đường dẫn skin / adminhtml / default / default này chưa?
Priya Ponnusamy

Câu trả lời:


107

Ghi chú quan trọng

Xin lưu ý rằng 1.9.3 khác với 1.9.2.4 + SUPEE-8788. Đây là sự khác biệt giữa hai: https://gist.github.com/digitalpianism/14a15cd52baede0e5d600e8c653f33e9

Cập nhật ngày 14 tháng 10: v2 của bản vá đã được phát hành (xem bên dưới) Kể từ ngày 13 tháng 10, các bản vá cho 1.5.x đến 1.8.x đã bị gỡ xuống từ trang web Magento vì không tương thích với các bản vá trước đó (xem bên dưới):

https://community.magento.com/t5/Security-Patches/SUPEE-8788-AND-SUPEE-1533-Incompiverse-Hunk-error/td-p/50434/highlight/false/page/2

V3 của bản vá

Phiên bản mới này chỉ dành cho Magento EE 1.13.0.x

Áp dụng V3:

  • hoàn nguyên SUPEE 1533 (nếu được cài đặt)
  • cài đặt SUPEE 3941 (nếu không cài đặt)
  • cài đặt SUPEE 8788 v3

V2 của bản vá

Áp dụng V2:

  • hoàn nguyên SUPEE 8788 v1
  • hoàn nguyên SUPEE 1533 (nếu được cài đặt)
  • cài đặt SUPEE 3941 (nếu không cài đặt)
  • cài đặt SUPEE 8788 v2

DemacMedia đã phát triển một tập lệnh bash hữu ích để tự động hóa quy trình ở trên, bạn có thể tìm thấy nó ở đây: https://github.com/DemacMedia/magento-SUPEE8788-patcher

Chi tiết của bản vá

Sau khi đào sâu vào bản vá ở đây là những phần thú vị (bản vá từ 1.9.2.4):

  • Mage_Adminhtml_Block_Media_Uploaderđã được thay thế bằng Mage_Uploader_Block_Multiplemột Mage_Uploadermô-đun đầy đủ giảm hỗ trợ Flash . Khối cũ hiện không được dùng nữa và mở rộng khối mới.
  • Vẫn liên quan đến người tải lên, các Mage_Downloadablemô-đun has been refactored để xử lý người tải lên không flash mới. Nó sử dụng Mage_Uploader_Block_Singlelàm khối tải lên thay vì sử dụng các mẫu.
  • Sau sự thay đổi này, t ông SWF file skin/adminhtml/default/default/media/flex.swf, skin/adminhtml/default/default/media/uploader.swfskin/adminhtml/default/default/media/uploaderSingle.swfđã bị xóa.
  • Bộ điều khiển xóa địa chỉ hiện được bảo vệ bằng khóa biểu mẫu trực tiếp thông qua getDeleteUrltừMage_Customer_Block_Address_Book
  • Bộ điều khiển loại bỏ mục Wishlist hiện được bảo vệ bằng khóa biểu mẫu thông qua getRemoveUrltừMage_Wishlist_Helper_Data
  • Phương thức thanh toán Paypal Express hiện đảm bảo rằng email khách hàng đã sử dụng tồn tại trong Magento khi kiểm tra và đăng ký người dùng mới. (hiểu: người dùng mới được tạo trước khi trích dẫn mới được xử lý)
  • Các phương thức thanh toán bằng cURL / HTTP Client hiện đã CURLOPT_SSL_VERIFYHOSTđược đặt thành 2 (trước đó là 0) và CURLOPT_SSL_VERIFYPEERcờ hiện được thêm vào các lệnh gọi cURL. Cờ Xác minh ngang hàng có thể được bật / tắt thông qua cấu hình phương thức thanh toán thông qua menu thả xuống Bật xác minh SSL.
  • Mage_Http_Client_Curlbây giờ đã CURLOPT_SSL_VERIFYPEERđược đặt thành true (trước đây là false) , hãy cẩn thận nếu bạn có bất kỳ mô-đun tùy chỉnh nào sử dụng nó.
  • Kích thước tối đa cho hình ảnh sản phẩm hiện có thể định cấu hình trong cấu hình. NB: nó có thể dẫn đến một thông báo lỗi vui nhộn nếu bạn tải lên hình ảnh quá lớn: Định dạng tệp không được phép trong Magento 1.9.2.2 sau khi tải lên bản vá

Đã biết các vấn đề SUPEE-8788 v2

Đã biết các vấn đề SUPEE-8788 v1

Đã biết 1.9.3.0 vấn đề

Chỉnh sửa: vì danh sách đang trở nên dài và nó khá lạc đề trong câu trả lời này (vì không liên quan đến SUPEE-8788), bạn có thể tham khảo bài đăng này để biết danh sách các vấn đề 1.9.3.0 đã biết: https: //magento.stackexchange. com / a / 140826/28080


1
Cảm ơn cho danh sách rộng rãi! Một câu hỏi: bạn có chắc chắn rằng vấn đề tìm kiếm toàn văn bản áp dụng cho bản vá SUPEE-8788 không? Tôi không thể tìm thấy bất kỳ thay đổi liên quan đến chức năng này.
Aad Mathijssen

1
@MageDev vui lòng tham khảo bình luận thứ ba trong câu hỏi;)
Raphael tại Digital Pianism

1
Nếu trình tải lên sản phẩm không hoạt động sau khi áp dụng thành công bản vá và bạn đang sử dụng plugin CreareSEO phổ biến thì cách khắc phục này cũng cần được áp dụng github.com/adampmoss/CreareSEO/pull/78
joesk

1
Tôi nhận thấy bạn đã đề cập "phương thức thanh toán Paypal Express hiện đảm bảo rằng email khách hàng đã sử dụng tồn tại trong Magento." Điều đó có nghĩa là Khách không thể kiểm tra bằng PayPal express? Bạn phải đăng ký người dùng? Tui bỏ lỡ điều gì vậy.
Biểu tượng

1
Một số tiện ích mở rộng của bên thứ ba sử dụng trình tải lên cũ bị hỏng sau khi áp dụng bản vá. Ví dụ: "Magic 360" đang thêm một tab vào các tab chi tiết sản phẩm phụ trợ. Sau khi vá, bạn sẽ không thể xem / chỉnh sửa chi tiết sản phẩm của mình. Tôi đã nhận thấy vấn đề này với nhà phát triển tiện ích mở rộng trên Magento kết nối ( magentoc Commerce.com/magento-connect/, ).
DarkCowboy

29

Khi áp dụng bản vá lỗi này có thể xảy ra:

checking file skin/adminhtml/default/default/media/flex.swf
checking file skin/adminhtml/default/default/media/uploader.swf
checking file skin/adminhtml/default/default/media/uploaderSingle.swf
Reversed (or previously applied) patch detected!  Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored
checking file skin/adminhtml/default/default/xmlconnect/boxes.css

Bản vá 8788 chứa nội dung nhị phân. Vì Magento không cung cấp bất kỳ liên kết tải xuống trực tiếp nào (tôi ghét chính sách này kể từ đó), bạn phải tải bản vá xuống máy tính của mình và tải nó lên bằng ứng dụng chuyển tệp (như WinSCP trên Windows) lên máy chủ của bạn. Ví dụ, WinSCP sẽ tải lên ở chế độ văn bản (WinSCP xử lý các tệp * .sh dưới dạng văn bản theo mặc định).

Vì vậy, cách giải quyết cho vấn đề này là, nén / tar tệp vá và giải nén / giải nén lại trên máy chủ. et voila.


Xin lỗi tôi không có cách nào để trả lời

  1. Tải xuống phiên bản magento chính xác (Ví dụ: CE 1.9.1.0)
  2. Thay thế các tệp sau bằng vị trí đã tải xuống

skin / adminhtml / default / default / media / flex.swf skin / adminhtml / default / default / media / uploader.swf skin / adminhtml / default / default / media / uploaderSingle.swf

  1. Chạy bản vá

Đã làm cho tôi



10
Bạn đã đọc câu hỏi OP? fschmengler hỏi: "Tuy nhiên: Bạn có gặp phải bất kỳ vấn đề tương thích hoặc lỗi nào SAU khi áp dụng bản vá không?" Tôi đã gặp phải vấn đề này KHI áp dụng các bản vá. Tôi đoán ý nghĩa của chủ đề này là, để ghi lại các lỗi có thể có của SUPEE-8788. Điều này bao gồm - IMHO - cũng có vấn đề với bản vá.
infabo

Làm việc một điều trị, cảm ơn! Là tốt nhất để làm điều này cho TẤT CẢ các bản vá Magento trong tương lai?
KiwisTaste Tốt

hoặc bạn chỉ cần dos2unix PATCH_SUPEE-8788_CE_1.9.2.4_v1-2016-10-11-07-03-46.sh
fbtb

Nói chung là không cần thiết trước đây và tôi cho rằng nó sẽ không cần thiết trong tương lai. Tôi đoán SWF của người tải lên là nhị phân duy nhất được vận chuyển với Magento 1.x - bây giờ họ đã biến mất. Vì vậy, tôi không mong đợi bất kỳ vấn đề như thế này trong tương lai một lần nữa.
infabo

3
Khi sử dụng FileZilla để tải tệp .shvá lên gốc Magento của bạn, hãy đặt loại chuyển thành binarytrước khi tải lên tệp vá. Tham khảo
ForMat

25

Nếu trước đây bạn đã áp dụng SUPEE-1533 thì bản vá sẽ thất bại vào app/code/core/Mage/Adminhtml/controllers/DashboardController.php.

Tôi đã giải quyết điều này bằng cách ...

  1. Hoàn nguyên thủ công các thay đổi được giới thiệu cho tệp đó bằng SUPEE-1533
  2. Áp dụng SUPEE-8788
  3. Giới thiệu lại các thay đổi được giới thiệu cho tệp đó theo cách thủ công bởi SUPEE-1533

Xóa thay đổi khỏi SUPEE-8788 rất nguy hiểm vì tệp vá chứa dữ liệu nhị phân và lưu nó trong trình chỉnh sửa có thể gây ra sự cố (một hình ảnh xác thực khác).


Theo tôi hiểu, bạn đã hoàn nguyên bản vá 1533 ban đầu, đã cài đặt SUPEE 8788 và sau đó cài đặt lại 1533 ?? Tôi có hiểu đúng?
Biểu tượng

Tôi cũng đang gặp sự cố với FAILED HUNK tại 28 ứng dụng / thiết kế / frontend / cơ sở / mặc định / mẫu / đánh giá / form.phtml
Biểu tượng

9
Tôi tự hỏi tại sao, khi chúng ta dành thời gian để áp dụng đúng các bản vá gia tăng chính thức, chúng ta sẽ bị phạt vì làm như vậy bằng cách sửa lỗi thủ công khi các bản vá không hoạt động khi các bản vá được cung cấp trước đó đã được áp dụng. Một cách tiếp cận rất kỳ quặc.
Jon Holland

1
Hầu hết với các phiên bản dưới 1.9 đã cài đặt SUPEE 1533, không thể cài đặt bản vá đúng cách. SUPEE 8788 không tương thích với 1533
Biểu tượng

2
@JonHolland Bởi vì, tốt, đó là Magento.
Agop

25

Đây là một bản tóm tắt về những gì tôi (và những người khác) gặp phải cho đến nay, tôi đang cố gắng sắp xếp nó, thoải mái thêm hoặc liên kết bất cứ điều gì còn thiếu, bài đăng là một Wiki cộng đồng:

Lý do cho bản vá lỗi

Nếu bạn thấy "LRI: Bản vá không thể được áp dụng / hoàn nguyên thành công", hãy tìm "Hunk # 1 FAILED" trong thông báo nhật ký để kiểm tra xem bản vá nào thất bại.

  • Rõ ràng v2 của bản vá cho Magento 1.7 dự kiến ​​SUPEE-3941 sẽ xuất hiện mặc dù nó chỉ tồn tại cho Magento 1.8 và 1.9 . Nếu bạn đang sử dụng Magento 1.7 và thấy các lỗi liên quan đến các tệp trong downloader, hãy tải xuống SUPEE-3941 cho 1.8 và áp dụng nó trên 1.7, nó sẽ hoạt động. Xem chủ đề bình luận ở đây: Vấn đề bảo mật SUPEE 8788
  • Trên các phiên bản Magento đã áp dụng SUPEE-1533 trước đó, bản vá không thành công app/code/core/Mage/Adminhtml/controllers/DashboardController.phpdo tệp bị ảnh hưởng bởi cả hai bản vá và SUPEE-8788 (không chính xác!) Giả sử rằng phiên bản chưa được vá. Điều này vẫn đúng với phiên bản 2 của bản vá! Phiên bản 2 bao gồm các thay đổi từ SUPEE-1533, vì vậy nếu bạn đã cài đặt nó trước đó, bạn vẫn phải hoàn nguyên nó, nhưng bạn không phải áp dụng lại thủ công sau đó.

  • Nếu bạn đã xóa hoặc đổi tên thư mục "trình tải xuống", bản vá sẽ thất bại vì nó vá một tệp trong trình tải xuống. Cách giải quyết đơn giản nhất là khôi phục thư mục tải xuống ban đầu, áp dụng bản vá, sau đó xóa thư mục lại. Ngoài ra, bạn cũng có thể loại bỏ các hướng dẫn downloader/lib/Mage/HTTP/Client/Curl.phptừ bản vá.

  • Các thông báo "Hunk FAILED" khác thường là do thay đổi trong các tệp cốt lõi hoặc thiếu các bản vá trước đó. Đảm bảo tất cả các bản vá trước cho phiên bản Magento của bạn đã được cài đặt và bạn không thực hiện thay đổi trong các tệp cốt lõi.

  • Một vấn đề phổ biến khác là bản vá không xóa .swfcác tệp vì nội dung nhị phân của chúng. Lỗi sẽ như thế này:

    checking file skin/adminhtml/default/default/media/uploaderSingle.swf
    Reversed (or previously applied) patch detected!  Assume -R? [n]
    Apply anyway? [n]
    Skipping patch.
    1 out of 1 hunk ignored
    

    hoặc như thế này

    Patching file skin/adminhtml/default/default/media/uploader.swf using Plan A...
    No such line 2 in input file, ignoring
    Empty context always matches.
    Hunk #1 failed at 0.
    1 out of 1 hunks failed while patching skin/adminhtml/default/default/media/uploader.swf
    Hmm...  The next patch looks like a unified diff to me...
    The text leading up to this was:
    --------------------------
    

    hoặc như thế này:

    Checking if patch can be applied/reverted successfully...
    /bin/patch: **** malformed patch at line 5790: ?rM]M??????&X㔮??v??Q;r?N?qJ??Y???I0?Y??4??'?????9?.??X?Ǒ?{??ax!G???I???q?u|????թ??????|
                                                   h??o?V@??|? ?g?H aꪭ??Ю???,I"?ğ????.??    yI?I\????)?X?
                         ?p???*?e?q?K8<DqD?H;|?
    ERROR: Patch can't be applied/reverted successfully.
    

    Các giải pháp có thể được đưa ra trong câu trả lời này bởi @infabo. Tải trực tiếp bản vá vào hệ thống mà tôi muốn áp dụng nó, sử dụng curl như được giải thích trong https: //gist.github.com/piotrekk vitaminki / 9ccecec

Cách nâng cao để xử lý các bản vá lỗi: @PeterOCallaghan đề nghị nhận xét dòng chạy khô và xử lý thủ công các tệp * .rej. Bằng cách này, bản vá có thể được áp dụng một phần và nếu không xóa được các tệp swf, bạn có thể thực hiện thủ công. Hoặc nếu không cập nhật được tệp downloadervì bạn đã xóa thư mục đó, bạn có thể bỏ qua tệp đó.

  1. vi PATCH_SUPEE-8788_CE_1.8.1.0_v1-2016-10-11-06-54-44.sh(hoặc tên tệp tương tự) thay đổi _apply_revert_patch dry-runđể trông giống như #_apply_revert_patch dry-run

  2. chạy bản vá bằng cách phát hành ./PATCH_SUPEE-8788_CE_1.8.1.0_v1-2016-10-11-06-54-44.sh

Điều đó sẽ vá các tập tin của bạn

  1. Bình luận _apply_revert_patchcho#_apply_revert_patch

  2. chạy lại bản vá, để thêm app/etc/app/etc/applied.patches.listmục

  3. grep cho tất cả các tệp .rej với

    git status | grep *.rej

  4. tự làm việc trong những thay đổi đó

Các vấn đề sau khi áp dụng bản vá

Phím mẫu

  • Đối với các phiên bản Magento trước 1.8, có các thay đổi trong frontend/base/defaultmẫu. Đảm bảo rằng bạn áp dụng thủ công các thay đổi tương tự trong chủ đề của mình nếu nó ghi đè các tệp này

    Cụ thể hơn, một khóa biểu mẫu đã được thêm cho các hành động lối vào như:

    • Xóa một mục khỏi danh sách mong muốn
    • Xóa địa chỉ khách hàng khỏi chế độ xem cửa hàng
    • Cập nhật một mục báo giá trong giỏ hàng của bạn

    Xem câu trả lời này của @LukeRogers nếu bạn gặp phải vấn đề với những hành động này.

Trình tải lên tùy chỉnh

Unirgy_Rapidflow và các tiện ích mở rộng khác có biểu mẫu tải lên tùy chỉnh không hoạt động nữa.

Xem câu trả lời này của @mpchadwick và nhận xét của @lloiacono

Tôi cố định nó bằng cách thay thế $this->getUploader()->getConfig()với $this->getUploader()->getUploaderConfig()trongUnirgy_RapidFlow_Block_Adminhtml_Profile_Edit_Tab_Upload

Để tìm hiểu xem có bất kỳ tiện ích mở rộng nào của bạn sử dụng tiện ích này không, bạn có thể chạy phần sau trên dòng lệnh:

grep -R 'getUploader()->getConfig();' app/code/community

Báo cáo lỗi

  • Lỗi nghiêm trọng của PHP: Gọi hàm không xác định hàm hash_equals ()

    xảy ra nếu bạn đang ở trên một phiên bản PHP trước 5.6 và ghi đè code/core/Mage/core/functions.phptrong code/local/Mage/core/functions.php(mà có thể là trường hợp nếu bạn sử dụng phần mở rộng Fishpig). Xem câu trả lời này của @ClaudiuCreanga


Các vấn đề được giải quyết trong v2 của bản vá

Nếu bạn gặp phải bất kỳ vấn đề nào trong số này, bạn có thể sử dụng phiên bản 1 của bản vá ("v1" trong tên tệp). Tải xuống bản vá một lần nữa để có được "v2" để khắc phục các sự cố này:

  • Có vấn đề tương thích với SUPEE-3941 và downloader/lib/Mage/HTTP/Client/Curl.php

  • 'Ngoại lệ' với thông báo 'Kiểu dữ liệu không được hỗ trợ N' trong /lib/Unserialize/Reader/ArrValue.php

  • Bản vá cho EE 1.14.2.0 vô tình chứa tệp mới test_oauth.php mà bạn nên xóa! Xem câu trả lời này của @MatthiasZeis


Khóa biểu mẫu được thêm khi cập nhật mục trích dẫn trong giỏ không phải là thứ đã được thêm vào với SUPEE-8788 (ít nhất là từ 1.9.2.4)
Raphael tại Digital Pianism

@RaphaelatDigitalPianism ít nhất là bản vá 1.13.0.1 bổ sung xác thực khóa biểu mẫu Mage_Checkout_CartController::updatePostAction, cũng có khả năng là các phiên bản vá khác.
Luke Rodgers

23

Nếu bạn nhận được

Call to undefined function hash_equals() error

ngay cả khi bản vá của bạn thành công thì điều đó có nghĩa là bạn đã sao chép hàm.php app/code/local/Mage/Core.

Bạn cũng sẽ phải chèn chức năng đó vào đó vì tệp đó sẽ ghi đè lên lõi.

Vì vậy, chèn vào app/code/local/Mage/Core/functions.phpcuối:

if (!function_exists('hash_equals')) {
    /**
     * Compares two strings using the same time whether they're equal or not.
     * A difference in length will leak
     *
     * @param string $known_string
     * @param string $user_string
     * @return boolean Returns true when the two strings are equal, false otherwise.
     */
    function hash_equals($known_string, $user_string)
    {
        $result = 0;

        if (!is_string($known_string)) {
            trigger_error("hash_equals(): Expected known_string to be a string", E_USER_WARNING);
            return false;
        }

        if (!is_string($user_string)) {
            trigger_error("hash_equals(): Expected user_string to be a string", E_USER_WARNING);
            return false;
        }

        if (strlen($known_string) != strlen($user_string)) {
            return false;
        }

        for ($i = 0; $i < strlen($known_string); $i++) {
            $result |= (ord($known_string[$i]) ^ ord($user_string[$i]));
        }

        return 0 === $result;
    }
}

1
Chính tôi biết rằng Fishpig yêu cầu bạn làm điều này. Vì vậy, nếu bạn đã cài đặt nó sẽ là một vấn đề cho bạn.
mpchadwick

1
Lưu ý: Tôi đã nhầm lẫn và đó là MWI yêu cầu bạn ghi đè các hàm.php, không phải Fishpig mwi-plugin.com/documentation/installation
mpchadwick

18

Trong PATCH_SUPEE-8788_EE_1.14.2.0_v1-2016-10-10-02-27-03.sh, một tệp test_oauth.phpđược tạo trong thư mục gốc Magento. Bạn sẽ muốn xóa cái này (hoặc ít nhất là không triển khai nó để sản xuất) vì nó có thể hiển thị dấu vết ngăn xếp ngoại lệ hoàn chỉnh cho người gọi URL https: //thedomain.tld/test_oauth.php .


Bắt tốt đẹp, Matthias! Sẽ là một hình thức tồi tệ để triển khai 17 bản vá APPSEC và mở ra một vectơ khác cùng một lúc. Bạn đã báo cáo điều này với Magento chưa?
Bryan 'BJ' Hoffpauir Jr.

Tôi đã mở một vé về việc này với Hỗ trợ Magento, vì tôi chắc chắn những người khác có điểm này. Không được nghe lại về phiên bản v2 của bản vá, nhưng họ nên biết về vấn đề này.
quasiobject

1
Sẽ có một v2, nên được xuất bản rất sớm. Vâng, tôi đã báo cáo nó khi tôi đăng ở đây.
Matthias Zeis

1
Có vẻ như điều đó đã được sửa ngay bây giờ
Erfan

18

ỨNG DỤNG NÀY CHO 1.7 PHIÊN BẢN MAGENTO


Nếu bạn đang chạy 1.7.0.2 phiên bản 2 của SUPEE 8788 sẽ không thành công trên dòng 372 khi cố gắng áp dụng các thay đổi cho Curl.php:

patching file downloader/lib/Mage/HTTP/Client/Curl.php
Hunk #1 FAILED at 372.
1 out of 1 hunk FAILED -- saving rejects to file downloader/lib/Mage/HTTP/Client

Các hướng dẫn nói rằng chúng ta nên trở lại SUPEE-1533cài đặt SUPEE-3941

VẤN ĐỀ: SUPEE-3941 chỉ có sẵn cho Magento CE 1.8-1.9. Bạn có thể thử áp dụng nó cho 1.7, và nó sẽ áp dụng. tôi nghĩnhà phát triển bản vá Magento nên phát hành phiên bản 3 của SUPEE-8788 cho những người đang chạy magento dưới 1.8 hoặc tạo một bản vá SUPEE-3941 bổ sung được thiết kế cho phiên bản dưới 1.8.

Btw phiên bản 1 của SUPEE-8788 khôngCurl.phplỗi trên 1.7.0.2 (Tôi đã thử nghiệm nó trên nhiều cài đặt)

Mẹo: nếu bạn gặp phải lỗi .swf ở cuối, hãy đảm bảo bạn Nén bản vá của mình, tải lên máy chủ và giải nén ở đó. Lỗi WW sẽ không còn nữa.

CẬP NHẬT:

Magento nói rằng về cơ bản, bạn có thể cài đặt bản vá SUPEE-3941 trên phiên bản Magento 1.7.0.2 để tránh lỗi khi áp dụng SUPEE-8788


Chúng tôi đã từ bỏ
datan.io

@ kavoir.com bạn cũng gặp lỗi CURL.PHP tương tự khi cài đặt vào 1.7.0.2 ??
Biểu tượng

1
Vấn đề tương tự ở đây cài đặt 8788 V2 vào ngày 1.7.0.2, mặc dù thú vị, chúng tôi gặp lỗi curl.php tương tự trên các trang web phiên bản 1.9.2.1 mới hơn không có sẵn SUPEE-3941. hoàn nguyên năm 1533 cũng không giúp ích gì cho vấn đề đó
Jon Holland

@JonHolland Tôi đã viết cho nhóm magento ... Tôi hy vọng họ sẽ trả lời
Biểu tượng

2
Tôi đã nhận được phản hồi từ lãnh đạo cộng đồng magento, về cơ bản, đó là okey để cài đặt bản vá 3941 trên phiên bản 1.7.0.2 ..
Biểu tượng

15

DashboardControll.php gốc (1.7.0.2- Không pached, Fresh từ magento)

  if ($params = unserialize(base64_decode(urldecode($gaData)))) {

1533 Patchboard DashboardControll.php chứa thay đổi sau

 if ($newHash == $gaHash) {
            $params = json_decode(base64_decode(urldecode($gaData)), true);
            if ($params) {

Bản vá 8788 thực hiện thay đổi sau trong DashboardControll.php

 if (hash_equals($newHash, $gaHash)) {
            if ($params = unserialize(base64_decode(urldecode($gaData)))) {

Như bạn có thể thấy 8788 có thay đổi được sửa đổi so với năm 1533, tôi KHÔNG chắc chắn lý tưởng của mình là sửa đổi tệp như mpchadwick gợi ý, bằng cách thay thế thủ công 8788 bằng 1533 sau khi cài đặt 8788.

Bất kỳ đề xuất?


2
IMO Kết quả cuối cùng mong muốn là sự kết hợp của cả hai. Nó phải là json_decode, nhưng nó nên sử dụng hàm hash_equals chứ không phải ==. Điều này ngăn chặn một cuộc tấn công thời gian (sẽ cực kỳ khó khai thác).
Peter O'Callaghan

Đồng ý với @Peter. Nếu bạn sử dụng Git, hoàn nguyên cam kết cho SUPEE-1533, áp dụng bản vá mới, xác nhận, sau đó hoàn nguyên lại cam kết hoàn nguyên. Các xung đột trong DashboardController.phpsẽ được giải quyết tự động sau đó.
Fabian Schmengler

1
Bạn có thể vui lòng cung cấp một đoạn mã cho DashboardControll.php mà chúng ta nên thay thế sau khi cài đặt 8788 không? Tôi không chắc chắn chính xác những gì cần chỉnh sửa, như tôi đã đề cập ở trên, các dòng patchd 1533 và 8788 trông khác nhau. Bạn có thể vui lòng cung cấp một phiên bản sửa đổi bằng tay như thế nào không?
Biểu tượng

Đây có phải là cách mã 8788 trông giống như sau khi sửa đổi thủ công với bản cập nhật 1533? if (hash_equals ($ newHash, $ gaHash)) {if ($ params = json_decode (base64_decode (urldecode ($ gaData)))) {
Biểu tượng

1
Lưu ý về việc hoàn nguyên các cam kết hai lần: bạn có thể sử dụng git revert -n 123456abgit cherry-pick -n 123456abtạm thời hoàn tác SUPEE-1533 mà không cần tạo thêm các cam kết cho nó.
Matthias Zeis

14

Một nửa cám dỗ để gắn cờ bài đăng này là chủ yếu dựa trên ý kiến ​​hoặc không có câu trả lời rõ ràng;)

Khóa biểu mẫu đã được thêm vào một vài bộ điều khiển, số lượng khác nhau tùy thuộc vào phiên bản magento của bạn.

Nếu bạn gặp rắc rối

  • Xóa một mục khỏi danh sách mong muốn
  • Xóa địa chỉ khách hàng khỏi chế độ xem cửa hàng
  • Cập nhật một mục báo giá trong giỏ hàng của bạn

Bạn sẽ cần kiểm tra .phtmltệp chủ đề của mình và đảm bảo rằng bạn đang POSTxem thông số khóa biểu mẫu để nó sẽ vượt qua kiểm tra trong các hành động của bộ điều khiển như:

class Mage_Checkout_CartController extends Mage_Core_Controller_Front_Action

     public function updatePostAction()
     {
+        if (!$this->_validateFormKey()) {
+            $this->_redirect('*/*/');
+            return;
+        }
+

Những vấn đề này đã làm vấp ngã rất nhiều người trong các bản vá trước đó, các chủ đề lối vào tùy chỉnh với các mẫu bị ghi đè rất dễ bị bỏ qua khi áp dụng các bản vá.

Phím dạng thường được thêm vào các .phtmlmẫu có chứa các hình thức như một phụ inputnhư

<input name="form_key" type="hidden" value="<?php echo $this->getFormKey() ?>" />

Có một danh sách đầy đủ các hình thức mà điều này ảnh hưởng? Vì vậy, tôi có thể kiểm tra và sửa chúng TẤT CẢ một lần và mãi mãi. Đừng muốn những rối loạn ngu ngốc bí mật như điều này gây khó chịu cho khách hàng hoặc giảm tỷ lệ chuyển đổi.
datan.io

Nếu SUPEE 8788 cài đặt hoàn hảo vào 1.7 và nó sẽ thực hiện thay đổi trong (ứng dụng / thiết kế / frontend / cơ sở / mặc định / mẫu .....). Nhưng mặc dù danh sách mong muốn trang web thay đổi, thêm nút loại bỏ tất cả hoạt động hoàn hảo. Chúng ta vẫn cần phải vá các tập tin chủ đề bằng tay? Hoặc, vì bản vá dài không phá vỡ bất cứ thứ gì trên frontend, chúng ta có thể để nguyên trạng?
Biểu tượng

11

Tôi đã gặp vấn đề tương tự trong swf trong 1.9.2.4.

Fox Cố định - Vui lòng làm theo các bước dưới đây.

Bước 1. Tải xuống bản vá bảo mật 8788 tệp SSH vào Liên kết này: - https://magento.com/tech-resource/doads/magento/

Bước 2. Sau khi tải xuống bản vá bảo mật 8788 tệp SSH Vui lòng đặt vào một thư mục và tạo cùng một thư mục Tệp Zip.

Bước 3. Vui lòng tải thư mục Zip lên thư mục gốc magento và Giải nén thông qua SSH Putty.

Bước 4. Chạy bản vá: - $ bash PATCH_SUPEE-8788_CE_1.9.2.4_v1-2016-10-11-07-03-46.sh

* Lưu ý: tệp vá của anh ta chứa toàn bộ tệp nhị phân ở định dạng văn bản. Đó là lý do tại sao khi bạn tải lên bản vá bảo mật 8788 tệp SSH không có tệp zip, cùng một tệp sẽ bị hỏng. *


10

Sau khi nối lại SUPEE-8788, tôi không còn có thể tải hồ sơ "Nhập" bằng Unirgy_RapidFlow 2.0.0.18, nhận được lỗi 500 (không có gì trong nhật ký Apache hoặc HTTPD).

Tôi vẫn đang trong quá trình gỡ lỗi và làm việc với Unirgy để giải quyết, nhưng có vẻ như khối tải lên đang gây ra sự cố ( Unirgy_RapidFlow_Block_Adminhtml_Profile_Edit_Tab_Upload).

Các bản vá giới thiệu một số thay đổi Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Gallery_Content, cha mẹ.

Ngoài uRapidFlow, các mô-đun bên thứ 3 khác cho phép tải lên tệp có thể bị hỏng do kết quả của SUPEE-8788.


bạn đã tìm ra giải pháp cho việc này chưa? Tôi cố định nó bằng cách thay thế $ this-> getUploader () -> getConfig () với $ this-> getUploader () -> getUploaderConfig () trong Unirgy_RapidFlow_Block_Adminhtml_Profile_Edit_Tab_Upload
lloiacono

Tốt cho đến bây giờ. Unirgy dường như cũng đã sửa nó trong 2.0.0.23. safe.unirgy.com/release-notes.php?m=1#RapidFlow Tôi đang làm việc với một khách hàng để mua các bản nâng cấp bổ sung và chưa thể xác thực.
mpchadwick

chạy cái này trên docroot của bạn để tìm những tập tin khác cần được sửa: grep -r 'getUploader () -> getConfig ()' ./
lloiacono

8

Tôi đã nhận được thông báo sau khi thực hiện kịch bản vá:

can't find file to patch at input line 4753
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git downloader/lib/Mage/HTTP/Client/Curl.php downloader/lib/Mage/HTTP/Client/Curl.php
|index 6d0607e..5757be3 100644
|--- downloader/lib/Mage/HTTP/Client/Curl.php
|+++ downloader/lib/Mage/HTTP/Client/Curl.php

Tôi nghĩ rằng điều này là do tôi đã đổi tên thư mục "trình tải xuống", theo các đề xuất từ https://www.magereport.com .

Tôi tạm thời đổi tên thư mục thành "trình tải xuống", áp dụng bản vá chính xác và sau đó đổi tên với tên bí mật.


8

Bản vá trên 1.9.0.0 cũng bị lỗi (có thể là 1.8.0.0 cho đến 1.9.0.1 bị ảnh hưởng) vì SUPEE-3941. 3941 bản vá tải xuống / lib / Mage / HTTP / Client / Curl.php và bây giờ 8788 không thành công.

checking file downloader/lib/Mage/HTTP/Client/Curl.php
Hunk #1 FAILED at 378.
1 out of 1 hunk FAILED
checking file js/lib/uploader/flow.min.js

Giải pháp cho 1.9.0.1 dưới đây. Thay đổi quá kỹ lưỡng, có thể cần phải tự điều chỉnh bản vá 8788.

chỉnh sửa: Chỉnh sửa bản vá, tìm kiếm Curl.php và thay thế

diff --git downloader/lib/Mage/HTTP/Client/Curl.php downloader/lib/Mage/HTTP/Client/Curl.php
index c55f88d..31f9f77 100644
--- downloader/lib/Mage/HTTP/Client/Curl.php
+++ downloader/lib/Mage/HTTP/Client/Curl.php
@@ -378,8 +378,8 @@ implements Mage_HTTP_IClient
         }

         $this->curlOption(CURLOPT_URL, $uri);
-        $this->curlOption(CURLOPT_SSL_VERIFYPEER, FALSE);
-        $this->curlOption(CURLOPT_SSL_VERIFYHOST, 2);
+        $this->curlOption(CURLOPT_SSL_VERIFYPEER, true);
+        $this->curlOption(CURLOPT_SSL_VERIFYHOST, 'TLSv1');

         // force method to POST if secured
         if ($isAuthorizationRequired) {
diff --git js/lib/uploader/flow.min.js js/lib/uploader/flow.min.js 

với

diff --git downloader/lib/Mage/HTTP/Client/Curl.php downloader/lib/Mage/HTTP/Client/Curl.php
index c55f88d..31f9f77 100644
--- downloader/lib/Mage/HTTP/Client/Curl.php
+++ downloader/lib/Mage/HTTP/Client/Curl.php
@@ -378,8 +378,8 @@ implements Mage_HTTP_IClient
         $uriModified = $this->getSecureRequest($uri, $isAuthorizationRequired);
         $this->_ch = curl_init();
         $this->curlOption(CURLOPT_URL, $uriModified);
-        $this->curlOption(CURLOPT_SSL_VERIFYPEER, false);
-        $this->curlOption(CURLOPT_SSL_VERIFYHOST, 2);
+        $this->curlOption(CURLOPT_SSL_VERIFYPEER, true);
+        $this->curlOption(CURLOPT_SSL_VERIFYHOST, 'TLSv1');
         $this->getCurlMethodSettings($method, $params, $isAuthorizationRequired);

         if(count($this->_headers)) {
diff --git js/lib/uploader/flow.min.js js/lib/uploader/flow.min.js

Tôi đã tùy chỉnh các tệp vá để hoạt động cho tất cả các phiên bản Magento sau khi cài đặt tất cả các bản vá trước đó: magentohosting.pro/files/Magehost.pro_fixed_SUPEE-8788_v2.zip
Jeroen Vermeulen - Magehost

8

Đây là những gì tôi đang nhận được

Hunk #1 FAILED at 373.
1 out of 1 hunk FAILED -- saving rejects to file downloader/lib/Mage/HTTP/Client/Curl.php.rej
patching file js/lib/uploader/flow.min.js
patching file js/lib/uploader/fusty-flow-factory.js
patching file js/lib/uploader/fusty-flow.js
patching file js/mage/adminhtml/product.js
patching file js/mage/adminhtml/uploader/instance.js
patching file skin/adminhtml/default/default/boxes.css
patching file skin/adminhtml/default/default/media/flex.swf
patching file skin/adminhtml/default/default/media/uploader.swf
patching file skin/adminhtml/default/default/media/uploaderSingle.swf
patching file skin/adminhtml/default/default/xmlconnect/boxes.css

Bắt lỗi chính xác cùng một cài đặt. Rất muốn biết nếu bạn tìm ra bất cứ điều gì.
TunaMaxx

Không, vẫn đang chờ người khác tìm ra điều này
Haim

2
Xem magento.stackexchange.com/a/73957/9276 . Nếu tệp Curl.php của bạn có bản sửa lỗi này, thì hãy hoàn tác thay đổi đó (hoàn nguyên dòng thành CURLOPT_SSL_CIPHER_LIST / 'TLSv1'), áp dụng bản vá và làm lại thay đổi.
Joe

Cảm ơn @Joe. Đã trở lại đây để đăng thông tin tương tự. Bạn đánh bại tôi vào nó! Đó là những gì tôi nhận được khi đi ngủ. :)
TunaMaxx

Có cùng một vấn đề, điều này đã giải quyết nó. Cảm ơn!
dafyddPrys

8

Có vẻ như Magento sẽ phát hành phiên bản cập nhật của SUPEE 8788, để sửa lỗi tương thích SUPEE 1533. Tôi không chắc chắn nếu ý tưởng tốt của nó để áp dụng sửa lỗi thủ công ngay bây giờ. Thay đổi thủ công có thể thỏa hiệp các bản cập nhật vá trong tương lai. Muốn nghe suy nghĩ của bạn.

Nó đã được xác nhận bởi Magento Community Manager. Như oct 13, 3pm EST .. tất cả các bản vá cho các phiên bản dưới 1.9 sẽ bị xóa khỏi danh sách tải xuống https : //www.magentoc Commerce.com/doad?_ga=1.236497153.1889606568.1445610645 Xem bài đăng: https://community.magento.com/t5 / Bảo mật-Bản vá lỗi / SUPEE-8788-AND-SUPEE-1533-Không tương thích-Hunk-error / mp / 50514 / highlight / false # M1805


1
Nếu bản vá được cập nhật có kết quả chính xác như bản sửa lỗi thủ công của chúng tôi và tôi hy vọng đó là trường hợp, thì tôi không thấy vấn đề gì. Bản vá cập nhật sẽ không cần thiết và các bản vá trong tương lai sẽ không thấy sự khác biệt.
Fabian Schmengler

1
@fschmengler khá giống với khả năng không tương thích PHP 5.5 cho SUPEE-7405 IMO. Các bản vá sẽ phản ánh sửa chữa thủ công.
Raphael tại Nghệ thuật piano kỹ thuật số

1
@fschmengler Theo hiểu biết của tôi, magento sẽ phát hành chính xác cùng một bản vá một lần nữa với các bản sửa lỗi. Tôi cố gắng hết sức để xóa bản vá cũ (tự sửa đổi) và cài đặt bản mới (có thể phát hành vào ngày hôm sau. Đến ngày mai chúng tôi nên cập nhật. Cảm ơn vì đã giúp đỡ!
Biểu tượng

Tôi không nghi ngờ giá trị của sự đóng góp này, nhưng theo phong cách Hỏi & Đáp, câu trả lời này dường như không phải là một câu trả lời cho tôi, hơn nữa là một bản cập nhật mà @fschmengler có thể thêm vào câu hỏi ban đầu của anh ấy (hoặc bạn có thể thêm nó vào câu hỏi Wiki cộng đồng trả lời).
7ochem

8

Chúng tôi đang nhận được báo cáo về các vấn đề mới sau đây mà tôi không thấy trong các bài đăng khác:

  • Ngoại lệ trong các bản phát hành mới trong một số trường hợp - lệnh gọi phương thức addCrumbs () (trong trường hợp getStoreConfig (web / default / show_cms_breadcrumbs) không được xác định). Không nên ảnh hưởng đến bản vá, chỉ phát hành 1.9.3 / 1.14.3

'Ngoại lệ' với thông báo 'Kiểu dữ liệu không được hỗ trợ N' trong /lib/Unserialize/Reader/ArrValue.php trong 1.9.1.0 và có thể là các phiên bản trước đó khi áp dụng bản vá. giải quyết trong phiên bản vá 2.

Hiện tại không có cách giải quyết dễ dàng cho những vấn đề đó. Chúng tôi đang làm việc để giải quyết chúng trong một phiên bản vá mới.


Sửa lỗi có thể cho lỗi dữ liệu loại N không được hỗ trợ gist.github.com/balloz/ceaf5feb5ac66caaa82342441d32aa88
Raphael tại Digital Pianism

Bạn có biết cách khắc phục lỗi Curl.php khi cài đặt SUPEE 8788 trên các phiên bản 1.6 và 1.7 không?
Biểu tượng

8

Trình tải lên bị hỏng khi bạn tải lên cùng một tệp cho các mẫu và liên kết cùng một lúc cho các sản phẩm có thể tải xuống. Lưu ý rằng điều này chỉ xảy ra nếu bạn sử dụng cùng một tệp trong cả hai lĩnh vực. (Nó được sử dụng để hoạt động chính xác trước khi vá.)

Để sao chép, chỉnh sửa một sản phẩm có thể tải xuống và nhấp vào tab Thông tin có thể tải xuống :

  1. Mở hàng Samples của accordion và duyệt tìm tệp mẫu.
  2. Trên hàng Liên kết của accordion, duyệt tìm liên kết tải xuống
  3. Nhấp vào Tải lên tệp từ trong phần Liên kết.

Trình tải lên tải lên tệp mẫu thay vì tệp liên kết có thể tải xuống và tệp bạn duyệt trong phần liên kết có thể tải xuống sẽ biến mất.

Tôi đã có thể sao chép cái này trên một bản vani, bản vá 1.7.0.2 CE.


Hóa ra đây là hành vi của lib lib cơ bản được sử dụng để tải lên: github.com/flowjs/flow.js/issues/76
Laura

6

Có, tôi đã gặp phải vấn đề khác khi đăng nhập, nó sẽ luôn trả về điều này:

Tôi thấy rằng đó là bởi vì trên lớp Enterprise_Pci_Model_Observer dòng 165,

Thay vì:

if (!Mage::helper('core')->getEncryptor()->validateHashByVersion($password, $model->getPassword())) {

Điều này sẽ khắc phục:

if (!Mage::helper('core')->getEncryptor()->validateHashByVersion($password, $model->getPasswordHash())) {

Vì tôi không thích thay đổi lõi (thậm chí chuyển sang cục bộ), tốt nhất là nếu Magento khắc phục điều này hoặc làm rõ điều này. Hiện tại, tôi đang tạo các tiện ích mở rộng mới để mở rộng điều này và tạo chức năng cho getPassword () (vì tôi muốn đảm bảo tất cả các nhà phát triển đều sử dụng chế độ Nhà phát triển).


2
Bây giờ đã áp dụng V2 của bản vá, tôi gặp phải vấn đề tương tự khi vá EE1.12. Có vẻ như tệp này đã thay đổi tại một số điểm trong khoảng từ 1,12 đến 1,14 nhưng không phải là một phần của các bản vá
Chris

1
Nâng cao điều này với Magento và họ đã cung cấp một bản vá tiếp theo để giải quyết vấn đề. Sự thay đổi là giống hệt như trên.
Chris

6

Chỉnh sửa tập tin Patch

Nếu bất cứ ai phải chỉnh sửa tệp vá, bạn không nên thực hiện nó trong trình chỉnh sửa vì điều này sẽ phá vỡ các tệp nhị phân được gói gọn trong bản vá.

Nếu bạn có một dòng lệnh tiện dụng tức là. linux / * unix thử sử dụng sedtiện ích để loại bỏ các dòng cụ thể.

Đạo cụ cho @fooman cho tiền boa. Xem ý chính ban đầu của anh ấy

Thí dụ sed -ie '101,111d' PATCH_SUPEE-8788_CE_1.7.0.2_v1-2016-10-11-06-36-18.sh

Điều này sẽ xóa dòng 101 đến 111.

Vấn đề nộp mẫu.

Nếu bạn thấy vấn đề nêu trên có vấn đề, bạn cũng có thể:

<?= $this->getBlockHtml('formkey'); ?>

Để biết thêm thông tin tham khảo bài đăng này getBlockHtml ('formkey') là gì?


4
Hãy cẩn thận với <?=nó không được kích hoạt trên mọi cấu hình php
Raphael tại Digital Pianism

@RaphaelatDigitalPianism bạn đúng. Mặc dù <?=được bật theo mặc định trong hầu hết các cấu hình php.ini, một số máy chủ chọn tắt nó.
Sergei Filippov

5

CE 1.6.2.0 & CUNG CẤP-3941

Để áp dụng bản vá bảo mật SUPEE-8788 (Phiên bản 2), ( http://devdocs.magento.com/guides/m1x/other/ht_install-patches.html#apply-8788-new ) trước tiên, bạn nên áp dụng SUPEE-3941 .

Tuy nhiên, trên trang tải xuống bản vá, không có bản vá SUPEE-3941 cho CE 1.6.2.0. Bản vá chỉ có sẵn cho CE 1.8 và 1.9.

Như đã đề cập trong chủ đề này, có vẻ ổn khi áp dụng bản vá SUPEE-3941 có sẵn (cho CE 1.8 & 1.9) trên CE 1.7.

Bạn có thể áp dụng SUPEE-3941 (cho CE 1.8 & 1.9) trên CE 1.6.2.0 không? Tôi đã thử áp dụng nó trên CE 1.6.2.0 và gặp lỗi sau:

Checking if patch can be applied/reverted successfully...
-e ERROR: Patch can't be applied/reverted successfully.

checking file downloader/Maged/Model/Connect.php
Hunk #1 succeeded at 489 (offset 3 lines).
checking file downloader/lib/Mage/Connect/Backup.php
checking file downloader/lib/Mage/Connect/Command.php
Hunk #1 FAILED at 64.
Hunk #2 succeeded at 205 with fuzz 2 (offset -44 lines).
Hunk #3 succeeded at 382 (offset -53 lines).
1 out of 3 hunks FAILED
checking file downloader/lib/Mage/Connect/Command/Install.php
Hunk #1 FAILED at 90.
Hunk #2 succeeded at 333 with fuzz 1 (offset 17 lines).
Hunk #3 succeeded at 363 (offset 17 lines).
1 out of 3 hunks FAILED
checking file downloader/lib/Mage/Connect/Packager.php
Hunk #4 FAILED at 268.
Hunk #5 FAILED at 290.
Hunk #6 succeeded at 369 with fuzz 2.
Hunk #7 FAILED at 377.
Hunk #9 FAILED at 428.
4 out of 10 hunks FAILED
checking file downloader/lib/Mage/Connect/Rest.php
Hunk #1 succeeded at 71 with fuzz 2 (offset -11 lines).
checking file downloader/lib/Mage/Connect/Singleconfig.php
Hunk #1 succeeded at 100 (offset -36 lines).
checking file downloader/lib/Mage/Connect/Validator.php
Hunk #1 succeeded at 418 (offset -41 lines).
Hunk #2 succeeded at 431 (offset -41 lines).
checking file downloader/lib/Mage/HTTP/Client/Curl.php
checking file downloader/template/settings.phtml

5

Hơi muộn một chút nhưng chúng tôi đã tìm thấy một vấn đề trong bản vá SUPEE-8788 V2, ít nhất là áp dụng cho các tệp vá cho Magento 1.7.0.2 và 1.7.0.1. Có lẽ điều này cũng áp dụng cho tất cả các phiên bản trước đó có phiên bản vá lỗi. Phiên bản Magento từ 1.8 trở đi không bị ảnh hưởng vì bản vá không thay đổi mẫu cho những bản đó.

Chi tiết

Bản vá thiếu một formkey cho tập tin app/design/frontend/base/default/template/persistent/checkout/onepage/login.phtml

Không có nó, đăng nhập không hoạt động trên thanh toán onepage (nó chỉ không hoạt động mà không có lỗi).

Sửa chữa

Một formkey phải được chèn như trong bản vá sau:

diff --git a/app/design/frontend/base/default/template/persistent/checkout/onepage/login.phtml b/app/design/frontend/base/default/template/persistent/checkout/onepage/login.phtml
index 9d15a577b..18483a3c5 100644
--- a/app/design/frontend/base/default/template/persistent/checkout/onepage/login.phtml
+++ b/app/design/frontend/base/default/template/persistent/checkout/onepage/login.phtml
@@ -71,6 +71,7 @@
         <h3><?php echo $this->__('Login') ?></h3>
         <?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
         <form id="login-form" action="<?php echo $this->getPostAction() ?>" method="post">
+        <?php echo $this->getBlockHtml('formkey'); ?>
         <fieldset>
             <h4><?php echo $this->__('Already registered?') ?></h4>
             <p><?php echo $this->__('Please log in below:') ?></p>

4

Đối với 1533 Trang web được vá chỉ cần thay thế dòng dưới đây từ PATCH_SUPEE-8788 *****. Sh:

diff --git app/code/core/Mage/Adminhtml/controllers/DashboardController.php app/code/core/Mage/Adminhtml/controllers/DashboardController.php
index 09ffc4c..367bf8e 100644
--- app/code/core/Mage/Adminhtml/controllers/DashboardController.php
+++ app/code/core/Mage/Adminhtml/controllers/DashboardController.php
@@ -91,7 +91,7 @@ class Mage_Adminhtml_DashboardController extends Mage_Adminhtml_Controller_Actio
         $gaHash = $this->getRequest()->getParam('h');
         if ($gaData && $gaHash) {
             $newHash = Mage::helper('adminhtml/dashboard_data')->getChartDataHash($gaData);
-            if ($newHash == $gaHash) {
+            if (hash_equals($newHash, $gaHash)) {
                 if ($params = unserialize(base64_decode(urldecode($gaData)))) {
                     $response = $httpClient->setUri(Mage_Adminhtml_Block_Dashboard_Graph::API_URL)
                             ->setParameterGet($params) 

bởi:

diff --git a/app/code/core/Mage/Adminhtml/controllers/DashboardController.php b/app/code/core/Mage/Adminhtml/controllers/DashboardController.php
index ab2d654..367bf8e 100644
--- a/app/code/core/Mage/Adminhtml/controllers/DashboardController.php
+++ b/app/code/core/Mage/Adminhtml/controllers/DashboardController.php
@@ -91,9 +91,8 @@ class Mage_Adminhtml_DashboardController extends Mage_Adminhtml_Controller_Actio
         $gaHash = $this->getRequest()->getParam('h');
         if ($gaData && $gaHash) {
             $newHash = Mage::helper('adminhtml/dashboard_data')->getChartDataHash($gaData);
-            if ($newHash == $gaHash) {
-                $params = json_decode(base64_decode(urldecode($gaData)), true);
-                if ($params) {
+            if (hash_equals($newHash, $gaHash)) {
+                if ($params = unserialize(base64_decode(urldecode($gaData)))) {
                     $response = $httpClient->setUri(Mage_Adminhtml_Block_Dashboard_Graph::API_URL)
                             ->setParameterGet($params)
                             ->setConfig(array('timeout' => 5))
diff --git a/app/code/core/Mage/Adminhtml/Block/Dashboard/Graph.php b/app/code/core/Mage/Adminhtml/Block/Dashboard/Graph.php
index da1b14a..b6d72c0 100644
--- a/app/code/core/Mage/Adminhtml/Block/Dashboard/Graph.php
+++ b/app/code/core/Mage/Adminhtml/Block/Dashboard/Graph.php
@@ -444,7 +444,7 @@ class Mage_Adminhtml_Block_Dashboard_Graph extends Mage_Adminhtml_Block_Dashboar
             }
             return self::API_URL . '?' . implode('&', $p);
         } else {
-            $gaData = urlencode(base64_encode(json_encode($params)));
+            $gaData = urlencode(base64_encode(serialize($params)));
             $gaHash = Mage::helper('adminhtml/dashboard_data')->getChartDataHash($gaData);
             $params = array('ga' => $gaData, 'h' => $gaHash);
             return $this->getUrl('*/*/tunnel', array('_query' => $params));

Về cơ bản, nó chỉ hoàn nguyên năm 1533 và để lại 8788.


Theo tôi hiểu, 8788 ghi đè các thay đổi trong DashboardControll.php và 1533 thay đổi ban đầu sẽ bị loại bỏ?
Biểu tượng

2
Có, mục đích của 1533 thay thế serialization () bằng json_encode () là để giảm cơ hội vượt qua cuộc tấn công ($ newHash == $ gaHash). Trong khi 8788 thêm hash_equals () cho cùng một mục đích
William Zhao

Thật tuyệt, tôi đã nghĩ đến việc thực hiện một cách khác, trên trang web thử nghiệm của tôi, tôi đã tải lên DashboardControll.php (tệp stock magento) và cài đặt SUPEE 8788. Tuy nhiên, tôi đã đọc trên diễn đàn này và một quý ông được đề cập để giới thiệu lại các thay đổi của Supee 1533 cho Supee 8988 sửa đổi tập tin. Bạn nghĩ gì về phương pháp của tôi?
Biểu tượng

Biểu tượng, hãy nhìn vào khác biệt của tôi ở trên, theo cách của bạn, bạn cần thay đổi lại dòng được cập nhật bởi SUPEE 1533 trong 'app / code / core / Mage / adminhtml / Block / Dashboard / Graph.php' nếu bạn đã có SUPEE 1533 vá. Nếu không, Graph.php sẽ bắn ra các thông số định dạng json và bạn sẽ không thể giải mã nó bằng cách hủy kích hoạt ()
William Zhao

4

Chụp Authorize.net bị hỏng sau khi áp dụng các bản vá. Việc ủy ​​quyền hoạt động tốt, nhưng khi nắm bắt thanh toán vào hóa đơn, nó sẽ báo "Lỗi cổng: Số thẻ tín dụng là bắt buộc" . Tệp nhật ký thanh toán cho thấy x_typeparam vượt qua giá trị auth_capturengay bây giờ, nhưng trước khi bản vá được sử dụng để vượt qua prior_auth_capturenó hoạt động tốt. Bất cứ ai gặp vấn đề này?

CẬP NHẬT: Khắc phục sự cố này - Authorize.net không chụp


4

Tôi đã vá một bản sao của Magento 1.9.2.4 bằng SSH với SUPEE-8788 Tôi đã vá một bản sao khác của Magento 1.9.2.4 bằng ftp với SUPEE-8788 Tôi đã vá một bản sao của magento 1.9.1.0 bằng SSH với SUPEE-8788 đã sử dụng một bản sao mới của magento 1.9.3.1

Trong tất cả các trang web magento có SUPEE-8788 tôi gặp vấn đề tương tự (có thể là lỗi của bản vá)

Sử dụng các sản phẩm có thể tải xuống và truy cập thông tin có thể tải xuống-> Mẫu khi tôi cố gắng Thêm một hàng mới (một hoặc nhiều) bằng cách nhấp vào "X" tôi không thể xóa hàng nữanhập mô tả hình ảnh ở đây

Tôi không phải là chuyên gia về Magento, tôi đang cố gắng tìm giải pháp. Nếu tôi tìm thấy tôi sẽ đăng, nếu bất cứ ai trong số bạn có một số giải pháp, nó sẽ rất rất hữu ích cho tôi

CẬP NHẬT : sử dụng thanh tra Chrome tôi thấy lỗi này:nhập mô tả hình ảnh ở đây

******* Tôi tìm thấy giải pháp *******

Tôi đã dành 2 ngày và tôi hy vọng điều này có thể giúp đỡ người khác, đây là một lỗi trong SUPEE-8788

Mở mẫu. app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable

Tìm hàm

remove : function(event){
    var element = $(Event.findElement(event, 'tr'));
    alertAlreadyDisplayed = false;
    if(element){
        element.down('input[type="hidden"].__delete__').value = '1';
        element.down('div.flex').remove();
        element.addClassName('no-display');
        element.addClassName('ignore-validate');
        element.hide();
    }
},

và thay thế nó bằng

remove : function(event){
    var element = $(Event.findElement(event, 'tr'));
    alertAlreadyDisplayed = false;
    if(element){
        element.down('input[type="hidden"].__delete__').value = '1';
        Element.select(element, 'div.flex').each(function(elm){
            elm.remove();
        });
        element.addClassName('no-display');
        element.addClassName('ignore-validate');
        element.hide();
    }
},

Điều này sẽ giải quyết BUG


3

Áp dụng PATCH_SUPEE-8788_CE_1.9.2.1_v1-2016-10-11-07-00-43 trên bản sao thử nghiệm của trang web đang chạy 1.9.2.1 và nó đã phá vỡ thanh toán. Hoàn nguyên các bản vá và kiểm tra hoạt động bình thường trở lại.

Khi gửi đơn đặt hàng, bạn sẽ quay trở lại giỏ hàng thay vì thanh toán thành công. Hãy nghĩ rằng tôi sẽ đợi phiên bản .1 trước khi thử lại.


Âm thanh như một ngoại lệ được ném trong khi đơn hàng được lưu, bạn đã kiểm tra nhật ký của mình chưa?
simonthesorcerer

Trông như vậy ... Lỗi nghiêm trọng của PHP: Class 'Mage_Core_Helper_UnserializeArray' không được tìm thấy trong ... / public_html / app / Mage.php trên dòng 547
Adam Lavery

@AdamLavery Truy cập Var / cache và xóa thư mục cache. Tôi nhận được lỗi đó khi tôi hoàn nguyên các paches trở lại ban đầu. Đó là một điều bộ nhớ cache.
Biểu tượng

Bản vá mới sẽ sớm ra mắt. Đây là một bản cập nhật bản vá lớn để mong không có lỗi ... Vâng ... ngón tay đan chéo.
Biểu tượng

1
Điều này có thể là do bạn thiếu app/code/core/Mage/Core/Helper/UnserializeArray.phpĐiều này đã được thêm vào trong SUPEE-6788, mà bạn có thể chưa cài đặt. Có vẻ như SUPEE-8788 có sự phụ thuộc không có giấy tờ vào SUPEE-6788.
Tyler V.

3

Email mới trong những giờ đầu từ Magento nói rằng họ sẽ sản xuất các phiên bản vá mới để giải quyết các vấn đề tương thích SUPEE-1533 và SUPEE-3941. Vì vậy, có thể chỉ cần giữ ngựa của bạn một chút.

Phiên bản doanh nghiệp 1.14.3, Phiên bản cộng đồng 1.9.3 và SUPEE-8788 Phiên bản doanh nghiệp 1.14.3 và Phiên bản cộng đồng 1.9.3 cung cấp hơn 120 cải tiến chất lượng, cũng như hỗ trợ cho PHP 5.6. Họ cũng giải quyết các vấn đề bảo mật quan trọng, bao gồm: ...

... Bản vá SUPEE-8788 giải quyết các vấn đề bảo mật này trong các phiên bản Magento trước đó. Thật không may, chúng tôi đã phát hiện ra rằng các bản vá SUPEE-8788 cho Community Edition 1.8 và các phiên bản trước đó và Enterprise Edition 1.13 và các bản phát hành trước đó không thành công nếu một cửa hàng trước đó đã áp dụng các bản vá bảo mật SUPEE-1533 hoặc SUPEE-3941. Chúng tôi đang cố gắng khắc phục vấn đề này và sẽ cung cấp các bản vá mới trong một đến ba ngày tới. Cho đến lúc đó, chúng tôi sẽ xóa các phiên bản này của bản vá SUPEE-8788 khỏi bản phân phối ...

Tuy nhiên, tôi lo ngại rằng các phiên bản Magento hoạt động của tôi nằm trong khoảng CE 1.9.3 mà họ nói là hoạt động và các phiên bản mới sắp ra mắt cho phiên bản v1.8 trở xuống. Tôi đã liên lạc với họ vì vậy sẽ chờ xem họ nói gì.


Không thực sự là một "câu trả lời" nhưng hy vọng thông tin hữu ích.
Jon Holland

Xin chào Jon, bạn cũng có thể chỉnh sửa câu hỏi ban đầu của @ fschmengler và thêm câu hỏi này ở phía dưới dưới dạng CẬP NHẬT . Tôi nghĩ anh ấy sẽ ổn với điều đó và chấp nhận chỉnh sửa đó.
7ochem

Ý tưởng hay nhưng ai đó đã thêm một cái gì đó :)
Jon Holland

3

Tôi không phải là một fan hâm mộ lớn của vá. Cá nhân tôi xóa tất cả các tệp Magento khỏi thư mục của họ sau đó tải lên phiên bản mới (sử dụng tập lệnh shell). Tất cả các tệp được cài đặt qua nhiều năm như mô-đun hoặc chủ đề vẫn còn đó. Đối với cơ sở dữ liệu tôi làm một so sánh giữa các phiên bản cài đặt mới. Một cách là tạo hoặc xóa các cột / bảng vào cơ sở dữ liệu, cách khác là cài đặt lại Magento chỉ cần thay đổi tên tệp /app/etc/local.xml. Tôi thích cái đầu tiên.

Nếu bạn không thay đổi cấu trúc cơ sở dữ liệu thành phiên bản 1.9.3.0, bạn sẽ gặp một số lỗi hoặc bạn không thể tải khu vực quản trị. Nếu bất cứ ai quan tâm đến một số so sánh cho các thư mục và cơ sở dữ liệu Magento giữa Magento CE 1.9.2.4 và 1.9.3.0, chỉ cần tải xuống tệp từ đây:

So sánh Magento: phiên bản 1.9.2.4 - 1.9.3.0

Có hai tệp html với kết quả hình ảnh rất đẹp.

Tôi đã cập nhật 4 cửa hàng ngày hôm nay bằng phương pháp của tôi thay vì vá. Tất cả đang chạy mà không có bất kỳ vấn đề.


Thật tuyệt nếu bạn đang ở phiên bản mới nhất và có bản phát hành mới cho bản vá, như trường hợp của 1.9.2.2, 1.9.2.3 và 1.9.2.4 - tuy nhiên đối với bản vá này không có bản phát hành mới 1.9.2.5 . Phiên bản 1.9.3.0 chứa một loạt các thay đổi bổ sung không liên quan đến bảo mật.
Fabian Schmengler

Với phương pháp của tôi, tôi có hai trong một, cập nhật bảo mật và các tính năng mới. Vấn đề duy nhất là bạn phải hiểu những gì đang xảy ra trong hệ thống tệp và cơ sở dữ liệu giữa các bản phát hành. Nó không phải là một vấn đề lớn khi bạn biết những gì bạn đang làm. Và bạn có một kiểm soát tốt hơn. Tôi đang làm phương pháp này kể từ phiên bản 1.7.
ĐỊA CHỈ74

3

Không gặp may mắn trên hầu hết các cài đặt của Magento CE (tổng cộng 6). Các phiên bản khác nhau: 1.9.1, 1.9.0.1, 1.8.1.

Tôi đã tải xuống bản vá 8788 tương ứng chính xác. Tôi đã chắc chắn hoàn nguyên 1533 khi áp dụng.

Tôi nhận được các kết quả đầu ra đáng chú ý sau đây đáng nghi ngờ:

Checking if patch can be applied/reverted successfully...
ERROR: Patch can't be applied/reverted successfully.

...

checking file downloader/lib/Mage/HTTP/Client/Curl.php
Hunk #1 FAILED at 372.

... kiểm tra tệp ứng dụng / mã / lõi / Mage / adminhtml / bộ điều khiển / IndexContoder.php Hunk # 1 đã thành công ở 373 (offset -19 dòng). ...

can't find file to patch at input line 5810
|diff --git lib/Unserialize/Parser.php lib/Unserialize/Parser.php
|index 423902a..2c01684 100644
|--- lib/Unserialize/Parser.php
|+++ lib/Unserialize/Parser.ph

Tương tự như trên đối với: lib / Unserialize / Reader / Arr.php lib / Unserialize / Reader / ArrValue.php Và nói rằng những người đi đường đó bị bỏ qua.

lưu ý: Không có gì trong thư mục Unserialized / Reader của tôi. Hoàn toàn trống rỗng. lưu ý: Curl.php nằm trong dir downloader. Không đổi tên. Nó kết thúc, nhưng tôi không thấy các tệp SWF bị xóa. Tôi không thấy bản vá được áp dụng trong danh sách áp dụng.patches.list

Làm cho không có ý nghĩa.


Ok .. đã tìm ra tất cả. Chắc chắn cần phải làm việc qua TẤT CẢ các bản vá cũ, theo thứ tự. Tôi đã có một vài bản vá cũ hơn chưa được áp dụng. Khi tôi kéo những cái đó xuống, và áp dụng lên dòng, mọi thứ bắt đầu vá thành công. Tuy nhiên, tôi đã nhận thấy rằng bất cứ khi nào tôi gặp lỗi hunk trên một tệp cho BẤT K patch bản vá nào, tôi phải vào bản vá và tìm những gì nó đang cố gắng thay thế và tự thực hiện trong cài đặt magento của mình. THEN loại bỏ các dòng "khác" khỏi bản vá và chạy lại. Về cơ bản bất cứ khi nào bạn thấy một lỗi hunk, hãy đi vào bản vá và xem những gì nó đang cố gắng +/- từ nó, và sau đó tự làm điều đó.
Rich Yessian

3

Tôi đã vá khoảng 10 trang web ngày hôm nay và mọi trang web nơi bản vá SUPEE-8788 không thành công đều có SUPEE-6788 SỨ MỆNH .

Điều này dẫn đến (ví dụ) lỗi sau:

can't find file to patch at input line 5810
|diff --git lib/Unserialize/Parser.php lib/Unserialize/Parser.php
|index 423902a..2c01684 100644
|--- lib/Unserialize/Parser.php
|+++ lib/Unserialize/Parser.php

Sau khi cài đặt SUPEE-6788, SUPEE-8788 đã vá chính xác.


3

Nếu bạn đang nhận được Hunk #1 failed lỗi tại xxx, đây là những gì tôi đã làm

Tôi nhận được Hunk #1 failed at 373. Lỗi !! sau dòng

kiểm tra trình tải xuống tập tin / lib / Mage / HTTP / Client / Curl.php

Vì vậy, tôi đã kiểm tra Curl.php tệp và thấy rằng tôi đã sửa đổi tệp trước đó (nhận xét một dòng). Tôi khôi phục lại tập tin gốc và chạy lại bản vá. Sau đó, bản vá đã thành công. ;).

Sau đó tôi đã kiểm tra:

/app/etc/applied.patches.list và mọi thứ có vẻ tốt

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.