Patch Keamanan SUPEE-8788 - Kemungkinan Masalah?


108

Patch keamanan Magento 1 SUPEE-8788 terbaru berisi 17 pembaruan APPSEC , jadi sangat penting untuk menerapkannya sesegera mungkin. Di sisi lain, ada banyak jeda kompatibilitas mundur potensial, dan mengingat sejarah tambalan selama setahun terakhir saya tidak akan menerapkannya dengan sembarangan.

Untungnya, kali ini tidak ada templat frontend yang terlibat, jadi sepertinya kita tidak perlu menambal semua tema kita. Ini hanya berlaku untuk Magento 1.8 atau lebih tinggi.

Meskipun demikian: Apakah Anda menemukan masalah kompatibilitas atau bug setelah menerapkan tambalan?


6
"tidak ada templat frontend yang terlibat" - tidak benar untuk versi Magento yang lebih lama. Misalnya tambalan 1.7.0.2 mengubah 9 file template frontend / base / default.
Kristof di Fooman

magento.stackexchange.com/questions/140571/... dupes yang ini? Mungkin bundel semua info di sini ...
7ochem

2
Bagi siapa pun yang memiliki masalah dengan pembaruan .swf dari tambalan, saya cukup menghapus baris 5951-9818 dari tambalan dan secara manual menghapus file .swf dari /skin/adminhtml/default/default/media- karena hanya itu yang dilakukan tambalan.
Liam McArthur

tidak yakin mengapa tetapi setelah 8788 instalasi pada 1.8.0.0, tambal 7405 laporan sebagai TIDAK diinstal. sementara v1 dan v1.1 sebelumnya diinstal
MagenX

2
@srinivas apakah Anda menghapus folder media dari jalur ini skin / adminhtml / default / default?
Priya Ponnusamy

Jawaban:


107

Catatan penting

Harap dicatat bahwa 1.9.3 berbeda dari 1.9.2.4 + SUPEE-8788. Inilah perbedaan antara keduanya: https://gist.github.com/digitalpianism/14a15cd52baede0e5d600e8c653f33e9

Pembaruan 14 Oktober: v2 tambalan telah dirilis (lihat di bawah) Pada 13 Oktober, tambalan untuk 1.5.x ke 1.8.x telah diturunkan dari situs web Magento karena ketidakcocokan dengan tambalan sebelumnya (lihat di bawah):

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

V3 dari tambalan

Versi baru ini hanya untuk Magento EE 1.13.0.x

Terapkan V3:

  • kembalikan SUPEE 1533 (jika terpasang)
  • instal SUPEE 3941 (jika tidak diinstal)
  • instal SUPEE 8788 v3

V2 dari tambalan

Terapkan V2:

  • kembalikan SUPEE 8788 v1
  • kembalikan SUPEE 1533 (jika terpasang)
  • instal SUPEE 3941 (jika tidak diinstal)
  • instal SUPEE 8788 v2

DemacMedia mengembangkan skrip bash yang berguna untuk mengotomatiskan proses di atas Anda dapat menemukannya di sini: https://github.com/DemacMedia/magento-SUPEE8788-patcher

Detail tambalan

Setelah menggali ke dalam tambalan di sini adalah bagian yang menarik (menambal dari 1.9.2.4):

  • Mage_Adminhtml_Block_Media_Uploadertelah diganti dengan Mage_Uploader_Block_Multiplebegitu ada Mage_Uploadermodul lengkap yang menjatuhkan dukungan Flash . Blok lama sekarang sudah usang dan memperpanjang blok baru.
  • Masih mengenai pengunggah, para Mage_Downloadablemodul telah refactored untuk menangani uploader non-Flash baru. Ini digunakan Mage_Uploader_Block_Singlesebagai blok unggah alih-alih menggunakan templat.
  • Mengikuti perubahan ini, file SWF skin/adminhtml/default/default/media/flex.swf, skin/adminhtml/default/default/media/uploader.swfdan skin/adminhtml/default/default/media/uploaderSingle.swftelah dihapus.
  • Pengontrol penghapusan alamat sekarang dilindungi dengan kunci formulir langsung melalui getDeleteUrldariMage_Customer_Block_Address_Book
  • Pengontrol penghapusan item Wishlist sekarang dilindungi dengan kunci formulir melalui getRemoveUrldariMage_Wishlist_Helper_Data
  • Metode pembayaran Paypal Express sekarang memastikan bahwa email pelanggan yang digunakan ada di Magento ketika memeriksa dan mendaftarkan pengguna baru. (mengerti: pengguna baru dibuat sebelum kutipan baru diproses)
  • Metode pembayaran menggunakan cURL / HTTP Client sekarang telah CURLOPT_SSL_VERIFYHOSTdiatur ke 2 (sebelumnya 0) dan CURLOPT_SSL_VERIFYPEERbendera sekarang ditambahkan ke panggilan cURL. Bendera Verifikasi Peer dapat diaktifkan / dinonaktifkan melalui konfigurasi metode pembayaran melalui dropdown Aktifkan Verifikasi SSL.
  • Mage_Http_Client_Curlsekarang telah CURLOPT_SSL_VERIFYPEERdisetel ke true (sebelumnya salah) , waspadalah jika Anda memiliki modul khusus yang menggunakannya.
  • Dimensi maks untuk gambar produk sekarang dapat dikonfigurasi dalam konfigurasi. NB: itu dapat menghasilkan pesan kesalahan yang lucu jika Anda mengunggah gambar terlalu besar: Format file yang dilarang di Magento 1.9.2.2 setelah mengunggah tambalan

Masalah SUPEE-8788 v2 yang dikenal

Masalah SUPEE-8788 v1 yang dikenal

Masalah 1.9.3.0 dikenal

Sunting: karena daftarnya semakin panjang dan cukup banyak di luar topik dalam jawaban ini (karena tidak terkait SUPEE-8788), Anda dapat merujuk ke pos ini untuk daftar masalah 1.9.3.0 yang dikenal: https: //magento.stackexchange. com / a / 140826/2380


1
Terima kasih untuk daftar lengkapnya! Satu pertanyaan: apakah Anda yakin bahwa masalah pencarian teks lengkap berlaku untuk tambalan SUPEE-8788? Saya tidak dapat menemukan perubahan apa pun yang terkait dengan fungsi ini.
Aad Mathijssen

1
@MageDev silakan merujuk ke komentar ketiga dalam pertanyaan;)
Raphael di Digital Pianism

1
Jika pengunggah produk tidak berfungsi setelah berhasil menerapkan tambalan dan Anda menggunakan plugin CreareSEO yang populer maka perbaikan ini perlu diterapkan juga github.com/adampmoss/CreareSEO/pull/78
joesk

1
Saya perhatikan Anda menyebutkan "Metode pembayaran Paypal Express sekarang memastikan bahwa email pelanggan yang digunakan ada di Magento." Apakah itu berarti bahwa Tamu tidak dapat checkot dengan PayPal express? Anda harus menjadi pengguna terdaftar? Apakah saya melewatkan sesuatu.
Ikon

1
Beberapa ekstensi pihak ketiga yang menggunakan pengunggah lama baru rusak setelah menerapkan tambalan. Misalnya "Magic 360" menambahkan tab ke tab detail produk backend. Setelah menambal, Anda tidak akan dapat melihat / mengedit detail produk Anda. Saya perhatikan masalah ini pada pengembang ekstensi di Magento connect ( magentocommerce.com/magento-connect/… ).
DarkCowboy

29

Saat menerapkan tambalan, kesalahan ini dapat terjadi:

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

Patch 8788 berisi konten biner. Karena Magento tidak memberikan tautan unduhan langsung apa pun (saya benci kebijakan ini sejak saat itu), Anda harus mengunduh tambalan ke komputer Anda dan mengunggahnya dengan aplikasi transfer file (seperti WinSCP pada Windows) ke server Anda. WinSCP misalnya akan mengunggah dalam mode TEXT (WinSCP menangani file * .sh sebagai teks secara default).

Jadi solusi untuk ini adalah, zip / tar file patch dan unzip / untar lagi di server. et voila.


Maaf saya tidak punya cara untuk menjawab ini

  1. Unduh versi magento yang benar (Misalnya: CE 1.9.1.0)
  2. Ganti file berikut dengan lokasi yang diunduh

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

  1. Jalankan tambalan

Bekerja untukku



10
Apakah Anda membaca pertanyaan OP? fschmengler bertanya: "Meskipun demikian: Apakah Anda menemukan masalah kompatibilitas atau bug SETELAH menerapkan tambalan?" Saya memang menemui masalah ini SAAT menerapkan tambalan. Saya kira arti dari utas ini adalah, untuk mendokumentasikan kesalahan yang mungkin dari SUPEE-8788. Ini termasuk - IMHO - masalah dengan tambalan itu sendiri juga.
infabo

Berhasil, terima kasih! Apakah lebih baik melakukan ini untuk SEMUA patch Magento di masa mendatang juga?
KiwisTasteGood

atau Anda cukup dos2unix PATCH_SUPEE-8788_CE_1.9.2.4_v1-2016-10-11-07-03-44.sh
fbtb

Secara umum itu tidak perlu sebelumnya dan saya menganggap itu tidak perlu di masa depan. Saya kira pengunggah SWF adalah satu-satunya binari yang dikirimkan dengan Magento 1.x - sekarang semuanya hilang. Jadi saya tidak mengharapkan masalah seperti ini lagi di masa depan.
infabo

3
Saat menggunakan FileZilla untuk mengunggah .shfile tambalan ke root Magento Anda, setel jenis transfer ke binarysebelum mengunggah file tambalan. Referensi
ForMat

25

Jika sebelumnya Anda telah menerapkan SUPEE-1533 maka tambalan akan gagal app/code/core/Mage/Adminhtml/controllers/DashboardController.php.

Saya memecahkan ini dengan ...

  1. Kembalikan perubahan yang diperkenalkan ke file itu secara manual oleh SUPEE-1533
  2. Terapkan SUPEE-8788
  3. Secara manual memperkenalkan kembali perubahan yang diperkenalkan ke file itu oleh SUPEE-1533

Menghapus perubahan dari SUPEE-8788 berbahaya karena file tambalan berisi data biner dan menyimpannya dalam editor dapat menyebabkan masalah (gotcha lain).


Seperti yang saya mengerti Anda mengembalikan tambalan 1533 yang asli, menginstal SUPEE 8788, dan kemudian menginstal lagi 1533 ?? Apakah saya mengerti dengan benar?
Ikon

Saya juga mengalami masalah dengan FUNLED HUNK di 28 app / design / frontend / base / default / template / review / form.phtml
Icon

9
Saya bertanya-tanya mengapa, ketika kita meluangkan waktu untuk menerapkan tambalan resmi resmi dengan benar, kita dihukum karena harus melakukan perbaikan manual ketika tambalan tidak berfungsi ketika tambalan yang sebelumnya disediakan telah diterapkan. Pendekatan yang sangat aneh.
Jon Holland

1
Sebagian besar dengan versi di bawah 1.9 yang memiliki SUPEE 1533 Terinstal, tidak dapat menginstal patch dengan benar. SUPEE 8788 tidak kompatibel dengan 1533
Ikon

2
@JonHolland Karena, yah, ini Magento.
Agop

25

Berikut adalah ringkasan dari apa yang saya (dan lainnya) temui sejauh ini, saya mencoba untuk tetap diurutkan, jangan ragu untuk menambahkan atau menautkan apa pun yang hilang, posnya adalah Wiki Komunitas:

Alasan kegagalan patch

Jika Anda melihat "ERROR: Patch tidak dapat diterapkan / dikembalikan dengan sukses", cari "Hunk # 1 FAILED" di pesan log untuk memeriksa di mana file patch gagal.

  • Rupanya v2 patch untuk Magento 1.7 mengharapkan SUPEE-3941 untuk hadir meskipun hanya ada untuk Magento 1.8 dan 1.9 . Jika Anda menggunakan Magento 1.7 dan melihat kesalahan terkait dengan file di downloaderdalamnya, unduh SUPEE-3941 for 1.8 dan terapkan pada 1.7, itu seharusnya berfungsi. Lihat utas komentar di sini: Masalah Patch Keamanan SUPEE 8788
  • Pada versi Magento yang telah menerapkan SUPEE-1533 sebelumnya, tambalan gagal app/code/core/Mage/Adminhtml/controllers/DashboardController.phpkarena file dipengaruhi oleh tambalan dan SUPEE-8788 (salah!) Mengasumsikan bahwa versi yang belum ditonton ada. Ini masih berlaku dengan versi 2 dari tambalan! Versi 2 menyertakan perubahan dari SUPEE-1533, jadi jika Anda menginstalnya sebelumnya, Anda masih harus mengembalikannya, tetapi Anda tidak harus menerapkannya lagi secara manual setelahnya.

  • Jika Anda menghapus atau mengganti nama direktori "pengunduh", tambalan akan gagal karena menambal file di dalam pengunduh. Solusi termudah adalah dengan mengembalikan direktori pengunduh asli, menerapkan tambalan, lalu menghapus direktori lagi. Atau, Anda juga bisa menghapus instruksi downloader/lib/Mage/HTTP/Client/Curl.phpdari tambalan.

  • Pesan "Hunk FAILED" lainnya biasanya karena perubahan pada file inti atau tidak ada tambalan sebelumnya. Pastikan semua tambalan sebelumnya untuk versi Magento Anda diinstal dan Anda tidak membuat perubahan pada file inti.

  • Masalah umum lainnya adalah tambalan gagal menghapus .swffile karena konten binernya. Kesalahan akan terlihat seperti ini:

    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

    atau seperti ini

    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:
    --------------------------

    atau seperti ini:

    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.

    Kemungkinan solusi diberikan dalam jawaban ini oleh @infabo. Mengunduh tambalan langsung ke sistem tempat saya ingin menerapkannya, menggunakan curl seperti yang dijelaskan di https://gist.github.com/piotrekkaminski/9bc45ec84028611d621e selalu berhasil untuk saya, kecuali ketika saya mencobanya di Cygwin

Cara canggih untuk menangani tambalan yang gagal: @PeterOCallaghan menyarankan untuk mengomentari baris yang berjalan kering dan secara manual menangani file * .rej. Dengan cara ini sebagian patch dapat diterapkan dan jika gagal menghapus file swf, Anda dapat melakukannya secara manual. Atau jika gagal memperbarui file downloaderkarena Anda menghapus direktori itu, Anda bisa mengabaikannya.

  1. vi PATCH_SUPEE-8788_CE_1.8.1.0_v1-2016-10-11-06-54-44.sh(atau nama file serupa) berubah _apply_revert_patch dry-runagar terlihat seperti #_apply_revert_patch dry-run

  2. jalankan tambalan dengan mengeluarkan ./PATCH_SUPEE-8788_CE_1.8.1.0_v1-2016-10-11-06-54-44.sh

Itu akan menambal file Anda

  1. Komentar _apply_revert_patchuntuk#_apply_revert_patch

  2. jalankan tambalan lagi, untuk menambahkan app/etc/app/etc/applied.patches.listentri

  3. grep untuk semua file .rej dengan

    git status | grep *.rej

  4. bekerja secara manual dalam perubahan itu

Masalah setelah menerapkan tambalan

Formulir kunci

  • Untuk versi Magento sebelum 1.8, ada perubahan pada frontend/base/defaulttemplat. Pastikan Anda secara manual menerapkan perubahan yang sama dalam tema Anda jika itu menimpa file-file ini

    Lebih khusus, kunci form telah ditambahkan untuk tindakan frontend seperti:

    • Menghapus item dari daftar keinginan
    • Menghapus alamat pelanggan dari tampilan toko
    • Memperbarui item kutipan di keranjang Anda

    Lihat jawaban ini oleh @LukeRogers jika Anda menemukan masalah dengan tindakan ini.

Pengunggah khusus

Unirgy_Rapidflow dan ekstensi lainnya dengan formulir unggahan khusus tidak berfungsi lagi.

Lihat jawaban ini oleh @mpchadwick dan komentar oleh @lloiacono

Aku tetap dengan mengganti $this->getUploader()->getConfig()dengan $this->getUploader()->getUploaderConfig()diUnirgy_RapidFlow_Block_Adminhtml_Profile_Edit_Tab_Upload

Untuk mengetahui apakah ada ekstensi Anda yang menggunakan ini, Anda dapat menjalankan yang berikut di baris perintah:

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

Pesan kesalahan yang dilaporkan

  • PHP Fatal error: Panggil ke fungsi hash_equals tidak terdefinisi ()

    yang terjadi jika Anda berada di versi PHP sebelum 5.6 dan menimpa code/core/Mage/core/functions.phpdi code/local/Mage/core/functions.php(yang mungkin terjadi jika Anda menggunakan Fishpig ekstensi). Lihat jawaban ini oleh @ClaudiuCreanga


Masalah diselesaikan di v2 patch

Jika Anda menemukan salah satu dari masalah ini, Anda mungkin menggunakan versi 1 dari tambalan ("v1" di nama file). Unduh tambalan lagi untuk mendapatkan "v2" yang memperbaiki masalah ini:

  • Ada masalah kompatibilitas dengan SUPEE-3941 dan downloader/lib/Mage/HTTP/Client/Curl.php

  • 'Pengecualian' dengan pesan 'Jenis data yang tidak didukung N' di /lib/Userialize/Reader/ArrValue.php

  • Patch untuk EE 1.14.2.0 secara tidak sengaja berisi file test_oauth.php baru yang harus Anda hapus! Lihat jawaban ini oleh @MatthiasZeis


Formulir kunci ditambahkan saat memperbarui item kutipan dalam keranjang bukan sesuatu yang telah ditambahkan dengan SUPEE-8788 (setidaknya dari 1.9.2.4)
Raphael di Digital Pianism

@RaphaelatDigitalPianism setidaknya patch 1.13.0.1 menambahkan validasi kunci form Mage_Checkout_CartController::updatePostAction, berpotensi versi patch lainnya juga.
Luke Rodgers

23

Jika Anda mendapatkan

Call to undefined function hash_equals() error

bahkan jika tambalan Anda berhasil maka itu mungkin berarti Anda telah menyalin functions.php di app/code/local/Mage/Core.

Anda harus memasukkan fungsi itu di sana juga karena file itu menimpa yang intinya.

Jadi masukkan di app/code/local/Mage/Core/functions.phpakhir:

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
Begitu saja saya tahu bahwa Fishpig mengharuskan Anda untuk melakukan ini. Jadi jika Anda menginstalnya, ini akan menjadi masalah bagi Anda.
mpchadwick

1
Catatan: Saya bingung dan MWI yang meminta Anda untuk mengesampingkan functions.php, bukan Fishpig mwi-plugin.com/documentation/installation
mpchadwick

18

Di PATCH_SUPEE-8788_EE_1.14.2.0_v1-2016-10-10-02-27-03.sh, file test_oauth.phpdibuat di direktori root Magento. Anda akan ingin menghapus yang ini (atau setidaknya tidak menyebarkannya ke produksi) karena itu bisa mengekspos jejak stack pengecualian lengkap untuk orang yang memanggil URL https: //thedomain.tld/test_oauth.php .


Tangkapan yang bagus, Matthias! Akan menjadi bentuk yang agak buruk untuk menggunakan 17 tambalan APPSEC dan membuka vektor lain pada saat yang sama. Apakah Anda melaporkan ini ke Magento?
Bryan 'BJ' Hoffpauir Jr.

Saya membuka tiket tentang hal ini dengan Dukungan Magento, karena saya yakin orang lain memilikinya pada saat ini. Belum pernah mendengar tentang versi v2 dari tambalan, tetapi mereka harus mengetahui masalah ini.
quasiobject

1
Akan ada v2, harus segera diterbitkan. Ya, saya melaporkannya ketika saya memposting di sini.
Matthias Zeis

1
Sepertinya itu sudah diperbaiki sekarang
Erfan

18

INI BERLAKU UNTUK 1.7 VERSI MAGENTO


Jika Anda menjalankan 1.7.0.2 versi 2 dari SUPEE 8788 akan gagal pada saluran 372 mencoba menerapkan perubahan ke 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

Instruksi mengatakan bahwa kita harus mengembalikan SUPEE-1533 dan menginstal SUPEE-3941

MASALAH: SUPEE-3941 hanya tersedia untuk Magento CE 1.8-1.9. Anda dapat mencoba menerapkannya untuk 1.7, dan itu akan berlaku. kupikirpengembang patch Magento harus merilis SUPEE-8788 versi 3 untuk mereka yang menjalankan magento di bawah 1,8 atau membuat patch SUPEE-3941 tambahan yang dirancang untuk versi di bawah 1,8.

Btw versi 1 dari SUPEE-8788 tidak memiliki Curl.phpkesalahan pada 1.7.0.2 (Saya mengujinya pada banyak instalasi)

Tip: jika Anda menghadapi kesalahan .swf di akhir, pastikan Anda Mengompres tambalan Anda, unggah ke server dan dekompresi di sana. Kesalahan WDF akan hilang.

MEMPERBARUI:

Magento mengatakan bahwa pada dasarnya tidak masalah untuk menginstal patch SUPEE-3941 pada versi Magento 1.7.0.2 untuk menghindari kesalahan dalam menerapkan SUPEE-8788


Kami sudah menyerah
datan.io

@ kavoir.com Anda juga mendapatkan kesalahan CURL.PHP yang sama saat menginstal pada 1.7.0.2 ??
Ikon

1
Masalah yang sama di sini menginstal 8788 V2 pada 1.7.0.2, meskipun menarik kami mendapatkan kesalahan curl.php yang sama di situs versi 1.9.2.1 baru kami yang tidak memiliki SUPEE-3941 tersedia. mengembalikan 1533 juga tidak membantu masalah itu
Jon Holland

@JonHolland Saya menulis kepada tim magento ... Saya harap mereka akan merespons
Ikon

2
Saya mendapat balasan dari pemimpin komunitas Magento, pada dasarnya tidak masalah untuk menginstal 3941 tambalan pada versi 1.7.0.2 ..
Ikon

15

DashboardController.php asli (1.7.0.2- Tidak di-pached, Segar dari magento)

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

1533 Patched DashboardController.php berisi perubahan berikut

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

Patch 8788 membuat perubahan berikut di DashboardController.php

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

Seperti yang Anda lihat 8788 memiliki perubahan yang dimodifikasi dibandingkan dengan 1533, saya TIDAK yakin di mana ideal untuk memodifikasi file seperti yang disarankan mpchadwick, dengan secara manual mengganti 8788 perubahan dengan 1533 setelah menginstal 8788. Pada dasarnya menghapus 8788 perubahan.

Ada saran?


2
IMO Hasil akhir yang diinginkan adalah campuran keduanya. Itu harus json_decode, tetapi harus menggunakan hash_equals daripada ==. Ini mencegah serangan waktu (yang akan sangat sulit untuk dieksploitasi).
Peter O'Callaghan

Setuju dengan @Peter. Jika Anda menggunakan Git, kembalikan komit untuk SUPEE-1533, terapkan tambalan baru, komit, lalu kembalikan komit reverting lagi. Konflik di DashboardController.phpharus diselesaikan secara otomatis.
Fabian Schmengler

1
Bisakah Anda memberikan sepotong kode untuk DashboardController.php yang harus kita ganti setelah menginstal 8788? Saya tidak yakin apa yang harus diedit, seperti yang saya sebutkan di atas, 1533 dan 8788 garis patchd terlihat berbeda. Bisakah Anda berikan seperti apa versi yang diubah secara manual?
Ikon

Apakah ini bagaimana 8788 kode akan terlihat setelah modifikasi manual dengan pembaruan 1533? if (hash_equals ($ newHash, $ gaHash)) {if ($ params = json_decode (base64_decode (urldecode ($ gaData))))) {
Ikon

1
Catatan tentang mengembalikan komit dua kali: Anda mungkin dapat menggunakan git revert -n 123456abdan git cherry-pick -n 123456abmembatalkan sementara SUPEE-1533 tanpa membuat komitmen tambahan untuk itu.
Matthias Zeis

14

Setengah tergoda untuk menandai posting ini terutama berdasarkan opini atau tanpa jawaban yang jelas;)

Kunci formulir telah ditambahkan ke beberapa pengendali, jumlahnya bervariasi tergantung pada versi magento Anda.

Jika Anda mengalami masalah

  • Menghapus item dari daftar keinginan
  • Menghapus alamat pelanggan dari tampilan toko
  • Memperbarui item kutipan di keranjang Anda

Anda perlu memeriksa .phtmlfile tema Anda dan memastikan Anda POSTmemasukkan parameter kunci form sehingga akan melewati pemeriksaan dalam tindakan pengontrol seperti:

class Mage_Checkout_CartController extends Mage_Core_Controller_Front_Action

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

Masalah ini membuat banyak orang tersandung di tambalan sebelumnya, tema frontend khusus dengan templat yang diganti mudah terlewatkan saat menerapkan tambalan.

Kunci bentuk sering ditambahkan ke .phtmltemplate yang berisi formulir sebagai tambahan inputseperti

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

Apakah ada daftar lengkap formulir yang mempengaruhi ini? Jadi saya bisa menguji dan memperbaiki semuanya SEMUA untuk selamanya. Jangan ingin disfungsi bodoh yang diam-diam seperti ini mengganggu pelanggan atau menurunkan tingkat konversi.
datan.io

Jika SUPEE 8788 diinstal dengan sempurna pada 1.7 dan itu membuat perubahan dalam (app / desain / frontend / base / default / template .....). Tetapi meskipun ada perubahan pada wishlist frontend situs web, tambahkan semua tombol hapus berfungsi dengan baik. Apakah kita masih perlu menambal file tema secara manual? Atau, selama tambalan tidak merusak apa pun di frontend, kita dapat membiarkannya apa adanya?
Ikon

11

Saya bertemu masalah yang sama di swf di 1.9.2.4.

Fox Fixed - Silakan ikuti langkah-langkah di bawah ini.

Langkah 1. Unduh patch keamanan 8788 file SSH ke Tautan ini: - https://magento.com/tech-resources/downloads/magento/

Langkah 2. Setelah mengunduh patch keamanan 8788 file SSH Silakan dimasukkan ke dalam satu folder dan buat folder Zip file yang sama.

Langkah 3. Harap unggah folder Zip ke root folder magento dan Unzip melalui SSH Putty.

Langkah 4. Jalankan tambalan: - $ bash PATCH_SUPEE-8788_CE_1.9.2.4_v1-2016-10-11-07-03-46.sh

* Catatan: ia menambal file berisi seluruh file biner dalam format teks. Itu sebabnya ketika Anda mengunggah patch keamanan 8788 file SSH tanpa file zip, file yang sama akan rusak. *


10

Setelah appyling SUPEE-8788 saya tidak lagi dapat memuat profil "Impor" menggunakan Unirgy_RapidFlow 2.0.0.18, mendapatkan 500 kesalahan (tidak ada di log Apache atau HTTPD).

Saya masih dalam proses debugging dan bekerja dengan Unirgy untuk menyelesaikannya, tetapi tampaknya blok pengunggah yang menyebabkan masalah ( Unirgy_RapidFlow_Block_Adminhtml_Profile_Edit_Tab_Upload).

Patch memperkenalkan beberapa perubahan pada Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Gallery_Content, induknya.

Selain uRapidFlow, modul pihak ketiga lainnya yang memungkinkan pengunggahan file dapat rusak karena SUPEE-8788.


sudahkah Anda menemukan solusi untuk ini? Saya memperbaikinya dengan mengganti $ this-> getUploader () -> getConfig () dengan $ this-> getUploader () -> getUploaderConfig () di Unirgy_RapidFlow_Block_Adminhtml_Profile_Edit_Tab_Upload
lloiacono

Bagus untuk sekarang. Unirgy juga tampaknya telah memperbaikinya di 2.0.0.23. secure.unirgy.com/release-notes.php?m=1#RapidFlow Saya bekerja dengan klien untuk membeli peningkatan tambahan dan belum dapat memvalidasi.
mpchadwick

jalankan ini pada dokumen Anda untuk menemukan file lain mana yang perlu diperbaiki: grep -r 'getUploader () -> getConfig ()' ./
lloiacono

8

Saya mendapat pesan berikut saat menjalankan skrip tambalan:

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

Saya rasa ini karena saya mengganti nama folder "pengunduh", mengikuti rekomendasi dari https://www.magereport.com .

Saya sementara mengganti nama folder menjadi "downloader", menerapkan tambalan dengan benar dan kemudian menamainya dengan nama rahasianya.


8

Patch pada 1.9.0.0 gagal juga (mungkin 1.8.0.0 hingga 1.9.0.1 terpengaruh) karena SUPEE-3941. 3941 patch downloader / lib / Mage / HTTP / Client / Curl.php dan sekarang 8788 gagal.

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

Solusi untuk 1.9.0.1 di bawah ini. Perubahannya terlalu menyeluruh, mungkin perlu menyesuaikan patch 8788 itu sendiri.

sunting: Edit tambalan, cari Curl.php dan ganti

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 

dengan

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

Saya mengkustomisasi file tambalan agar berfungsi untuk semua versi Magento setelah menginstal semua tambalan sebelumnya: magentohosting.pro/files/MageHost.pro_fixed_SUPEE-8788_v2.zip
Jeroen Vermeulen - MageHost

8

Inilah yang saya dapatkan

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

Mendapatkan kesalahan yang sama persis dengan instalasi. Ingin tahu jika Anda menemukan sesuatu.
TunaMaxx

Tidak, masih menunggu orang lain untuk memecahkan masalah ini
Haim

2
Lihat magento.stackexchange.com/a/73957/9276 . Jika file Curl.php Anda memiliki perbaikan ini, maka urungkan perubahan itu (kembalikan baris ke CURLOPT_SSL_CIPHER_LIST / 'TLSv1'), terapkan tambalan, dan ulangi perubahan tersebut.
Joe

Terima kasih @ Jo. Baru saja kembali ke sini untuk memposting informasi yang sama. Anda mengalahkan saya untuk itu! Itulah yang saya dapatkan untuk tidur. :)
TunaMaxx

Punya masalah yang sama, ini menyelesaikannya. Terima kasih!
dafyddPrys

8

Sepertinya Magento akan merilis versi terbaru dari SUPEE 8788, untuk memperbaiki kompatibilitas SUPEE 1533. Saya tidak yakin apakah ide yang baik untuk menerapkan perbaikan secara manual saat ini. Perubahan manual dapat membahayakan pembaruan tambalan di masa mendatang. Ingin mendengar pendapat Anda.

Itu telah dikonfirmasi oleh Manajer Komunitas Magento. Pada 13 Oktober, pukul 3 sore EST .. semua tambalan untuk versi di bawah 1.9 dihapus dari daftar unduhan https://www.magentocommerce.com/download?_ga=1.236497153.1889606568.1445610645 Lihat pos: https://community.magento.com/t5 / Keamanan-Patch / SUPEE-8788-AND-SUPEE-1533-Incompatible-Hunk-error / mp / 50514 / highlight / false # M1805


1
Jika tambalan yang diperbarui memiliki hasil yang persis sama dengan perbaikan manual kami, dan saya harap itu masalahnya, maka saya tidak melihat masalah. Patch yang diperbarui tidak diperlukan dan patch yang akan datang tidak akan melihat perbedaan.
Fabian Schmengler

1
@fschmengler sangat mirip dengan ketidakcocokan PHP 5.5 untuk SUPEE-7405 IMO. Patch akan mencerminkan perbaikan manual.
Raphael di Digital Pianism

1
@ fschmengler Setahu saya magento akan merilis patch yang persis sama lagi dengan perbaikan. Saya memilih yang terbaik untuk menghapus tambalan lama (dimodifikasi sendiri) dan menginstal yang baru (mungkin dirilis hari berikutnya. Besok kita harus memperbarui. Terima kasih atas bantuannya!
Ikon

Saya tidak meragukan nilai kontribusi ini, tetapi berpegang teguh pada gaya Tanya Jawab, jawaban ini sepertinya bukan jawaban bagi saya, lebih dari pembaruan yang dapat ditambahkan oleh @fschmengler ke pertanyaan aslinya (atau Anda dapat menambahkannya ke Jawaban Wiki Komunitas).
7ochem

8

Kami mendapat laporan tentang masalah baru berikut yang tidak saya lihat di pos lain:

  • Pengecualian dalam rilis baru dalam beberapa kasus - addCrumbs () metode panggilan (dalam kasus getStoreConfig (web / default / show_cms_breadcrumbs) tidak ditentukan). Seharusnya tidak mempengaruhi patch, hanya rilis 1.9.3 / 1.14.3

'Pengecualian' dengan pesan 'Jenis data yang tidak didukung N' di /lib/Unserialize/Reader/ArrValue.php di 1.9.1.0 dan mungkin versi sebelumnya ketika patch diterapkan. diselesaikan dalam versi patch 2.

Saat ini tidak ada solusi mudah yang diketahui untuk masalah tersebut. Kami sedang berupaya menyelesaikannya dalam versi tambalan baru.


Perbaikan yang mungkin untuk kesalahan tipe N tipe data yang Tidak didukung gist.github.com/balloz/ceaf5feb5ac66caaa82342441d32aa88
Raphael di Digital Pianism

Adakah yang tahu bagaimana cara mengatasi kesalahan Curl.php saat memasang SUPEE 8788 pada versi 1.6 dan 1.7?
Ikon

8

Pengunggah berhenti ketika Anda mengunggah file yang sama untuk sampel dan tautan pada saat yang sama untuk produk yang dapat diunduh. Perhatikan bahwa ini hanya terjadi jika Anda menggunakan file yang sama di kedua area. (Dulu bekerja dengan benar sebelum tambalan.)

Untuk mereproduksi, edit produk yang dapat diunduh dan klik pada tab Informasi Yang Dapat Diunduh :

  1. Buka baris Sampel akordeon dan telusuri file sampel.
  2. Pada baris Tautan akordeon, telusuri tautan unduhan
  3. Klik Unggah File dari dalam bagian Tautan.

Pengunggah mengunggah file sampel alih-alih file tautan yang dapat diunduh, dan file yang Anda telusuri di bagian tautan yang dapat diunduh menghilang.

Saya bisa mereproduksi ini pada vanilla, yang dipasang 1.7.0.2 CE menginstal.


Ternyata inilah perilaku JS lib mendasar yang digunakan untuk mengunggah: github.com/flowjs/flow.js/issues/76
Laura

6

Ya, saya menemukan masalah lain saat masuk, itu akan selalu mengembalikan ini:

Saya menemukan itu karena pada kelas Enterprise_Pci_Model_Observer baris 165,

Dari pada:

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

Ini akan memperbaiki:

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

Karena saya tidak suka mengubah inti (bahkan pindah ke lokal), yang terbaik adalah Magento memperbaikinya atau mengklarifikasi ini. Saat ini tambang sedang membuat ekstensi baru untuk memperluas ini dan membuat fungsi untuk getPassword () (karena saya ingin memastikan semua pengembang menggunakan mode Pengembang aktif).


2
Setelah menerapkan V2 dari tambalan, saya mengalami masalah yang sama dengan menambal EE1.12. Sepertinya file ini telah berubah di beberapa titik antara 1,12 dan 1,14 tetapi bukan sebagai bagian dari tambalan
Chris

1
Mengangkat ini dengan Magento dan mereka menyediakan tambalan lebih lanjut untuk mengatasi masalah ini. Perubahannya identik dengan yang di atas.
Chris

6

Mengedit File Patch

Jika ada orang yang mengedit file tambalan, Anda tidak boleh melakukannya di editor karena ini akan memecah file biner yang dienkapsulasi dalam tambalan.

Jika Anda memiliki baris perintah yaitu berguna. linux / * unix coba gunakan sedutilitas untuk menghapus baris tertentu.

Props untuk @fooman untuk tipnya. Lihat intisari aslinya

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

Ini akan menghapus baris 101 hingga 111 secara inklusif.

Formulir Masalah Pengajuan.

Jika Anda melihat masalah yang disebutkan di atas, Anda juga dapat:

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

Untuk informasi lebih lanjut, lihat posting ini Apa itu getBlockHtml ('formkey')?


4
Hati-hati dengan <?=itu tidak diaktifkan pada setiap konfigurasi php
Raphael di Digital Pianism

@RaphaelatDigitalPianism Anda benar. Meskipun <?=diaktifkan secara default di sebagian besar konfigurasi php.ini, beberapa host memilih untuk menonaktifkannya.
Sergei Filippov

5

CE 1.6.2.0 & SUPEE-3941

Untuk menerapkan patch keamanan SUPEE-8788 (Versi 2), ( http://devdocs.magento.com/guides/m1x/other/ht_install-patches.html#apply-8788-new ) disarankan untuk menerapkan SUPEE-3941 terlebih dahulu. .

Namun, pada halaman unduhan tambalan, tidak ada tambalan SUPEE-3941 untuk CE 1.6.2.0. Patch hanya tersedia untuk CE 1.8 dan 1.9.

Seperti yang disebutkan dalam utas ini, tampaknya tidak masalah untuk menerapkan patch SUPEE-3941 yang tersedia (untuk CE 1.8 & 1.9) pada CE 1.7.

Apakah saya tetap bisa menerapkan SUPEE-3941 (untuk CE 1.8 & 1.9) pada CE 1.6.2.0? Saya mencoba menerapkannya pada CE 1.6.2.0 dan mendapatkan kesalahan berikut:

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

Sedikit terlambat tetapi kami menemukan masalah di patch SUPEE-8788 V2 yang setidaknya berlaku untuk file patch untuk Magento 1.7.0.2 dan 1.7.0.1. Mungkin ini juga berlaku untuk semua versi sebelumnya yang ada versi tambalan. Versi Magento mulai 1.8 aktif tidak terpengaruh karena tambalan tidak mengubah templat untuk itu.

Secara terperinci

Patch tidak memiliki formkey untuk file app/design/frontend/base/default/template/persistent/checkout/onepage/login.phtml

Tanpanya login tidak akan berfungsi pada checkout di tempat (tidak berfungsi tanpa kesalahan).

Memperbaiki

Formkey harus dimasukkan seperti pada tambalan berikut:

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

Untuk 1533 situs yang ditambal cukup ganti baris di bawah ini dari 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) 

oleh:

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));

Pada dasarnya itu hanya mengembalikan 1533 dan meninggalkan 8788.


Seperti yang saya mengerti 8788 menimpa perubahan di DashboardController.php, dan perubahan 1533 asli akan dihilangkan?
Ikon

2
Ya tujuan 1533 mengganti serialize () oleh json_encode () adalah untuk mengurangi kemungkinan serangan pass ($ newHash == $ gaHash). Sementara 8788 menambahkan hash_equals () untuk tujuan yang sama
William Zhao

Hebat, saya berpikir untuk melakukan sedikit cara lain, di situs pengujian saya, saya mengunggah DashboardController.php (file stok magento) bersih dan menginstal SUPEE 8788. Namun, saya membaca di forum ini dan seorang pria yang disebutkan untuk secara manual memperkenalkan kembali supee 1533 perubahan ke Supee 8988 file yang dimodifikasi. Apa yang Anda pikirkan tentang metode saya?
Ikon

Ikon, lihat diff saya di atas, dengan cara Anda, Anda perlu mengubah kembali baris yang diperbarui oleh SUPEE 1533 di 'app / code / core / Mage / Adminhtml / Block / Dashboard / Graph.php' juga jika Anda sudah memiliki SUPEE 1533 ditambal. Jika tidak, Graph.php akan memecat params format json dan Anda tidak akan dapat mendekodekannya dengan unserialize ()
William Zhao

4

Pengambilan Authorize.net rusak setelah menerapkan tambalan. Otorisasi berfungsi dengan baik, tetapi saat mengambil pembayaran untuk ditagih, ini memberikan "Kesalahan gerbang: diperlukan nomor kartu kredit" . File log pembayaran menunjukkan x_typenilai melewati param auth_capturesekarang, tetapi sebelum tambalan itu digunakan untuk melewati prior_auth_captureyang berfungsi dengan baik. Adakah yang mengalami masalah ini?

UPDATE: Perbaiki untuk masalah ini - Authorize.net tidak menangkap


4

Saya telah menambal salinan Magento 1.9.2.4 menggunakan SSH dengan SUPEE-8788 Saya telah menambal salinan Magento 1.9.2.4 lainnya menggunakan ftp dengan SUPEE-8788 Saya telah menambal salinan magento 1.9.1.0 menggunakan SSH dengan SUPEE-8788 Saya punya menggunakan salinan baru magento 1.9.3.1

Di semua situs web magento ini dengan SUPEE-8788 saya mengalami masalah yang sama (mungkin bug patch)

Menggunakan produk yang dapat diunduh dan masuk dalam Informasi yang dapat diunduh-> Sampel ketika saya mencoba Menambahkan baris baru (satu atau lebih) dengan mengklik "X" saya tidak dapat lagi menghapus barismasukkan deskripsi gambar di sini

Saya tidak begitu ahli dalam Magento, saya mencoba mencari solusi. Jika saya akan menemukan saya akan memposting, jika ada di antara Anda memiliki beberapa solusi itu akan sangat berguna bagi saya

UPDATE : menggunakan inspektur Chrome saya melihat kesalahan ini:masukkan deskripsi gambar di sini

******* SAYA MENEMUKAN SOLUSINYA *******

Saya menghabiskan 2 hari dan saya harap ini dapat membantu orang lain, ini adalah bug di SUPEE-8788

Buka samples.phtml di dalamnya app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable

Temukan fungsinya

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();
    }
},

dan ganti dengan

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();
    }
},

Ini akan menyelesaikan BUG


3

Diterapkan PATCH_SUPEE-8788_CE_1.9.2.1_v1-2016-10-11-07-00-43 pada salinan uji situs yang menjalankan 1.9.2.1 dan telah melanggar checkout. Kembalikan tambalan dan checkout berfungsi normal kembali.

Saat mengirimkan pesanan, Anda akan dibawa kembali ke troli alih-alih checkout. Pikir saya akan menunggu versi .1 sebelum mencoba lagi.


terdengar seperti pengecualian yang dilemparkan saat pesanan disimpan, apakah Anda sudah memeriksa log Anda?
simonthesorcerer

Tampak seperti itu ... Kesalahan PHP fatal: Kelas 'Mage_Core_Helper_UnserializeArray' tidak ditemukan di ... / public_html / app / Mage.php on line 547
Adam Lavery

@AdamLavery Buka Var / cache dan hapus folder cache. Saya mendapatkan kesalahan itu ketika saya mengembalikan pache kembali ke aslinya. Ini hal cache.
Ikon

Tambalan baru harus segera keluar. Ini adalah pembaruan tambalan yang besar untuk mengharapkan tidak ada kesalahan ... Ya ... semoga saja.
Ikon

1
Ini kemungkinan karena Anda tidak ada. app/code/core/Mage/Core/Helper/UnserializeArray.phpIni ditambahkan di SUPEE-6788, yang mungkin belum Anda pasang. Sepertinya SUPEE-8788 memiliki ketergantungan tanpa dokumen pada SUPEE-6788.
Tyler V.

3

Email baru pada jam-jam awal dari Magento menyatakan bahwa mereka akan memproduksi versi tambalan baru untuk menangani masalah kompatibilitas SUPEE-1533 dan SUPEE-3941. Jadi mungkin hanya memegang kuda Anda sebentar.

EDISI ENTERPRISE 1.14.3, EDISI MASYARAKAT 1.9.3, dan SUPEE-8788 Edisi Perusahaan 1.14.3 dan Edisi Komunitas 1.9.3 memberikan lebih dari 120 peningkatan kualitas, serta dukungan untuk PHP 5.6. Mereka juga menyelesaikan masalah keamanan kritis, termasuk: ...

... Patch SUPEE-8788 mengatasi masalah keamanan ini di versi Magento sebelumnya. Sayangnya, kami telah menemukan bahwa patch SUPEE-8788 untuk Community Edition 1.8 dan rilis sebelumnya dan Enterprise Edition 1.13 dan rilis sebelumnya gagal jika toko sebelumnya telah menerapkan patch keamanan SUPEE-1533 atau SUPEE-3941. Kami sedang berupaya untuk memperbaiki masalah ini dan akan memberikan tambalan baru dalam satu hingga tiga hari ke depan. Sampai saat itu, kami menghapus versi patch SUPEE-8788 ini dari distribusi ...

Namun saya khawatir bahwa versi Magento aktif saya jatuh antara CE 1.9.3 yang mereka katakan berfungsi dan versi baru segera hadir untuk V1.8 dan di bawah. Saya telah menghubungi mereka sehingga akan menunggu dan melihat apa yang mereka katakan.


Bukan benar-benar "jawaban" tapi info berguna semoga.
Jon Holland

Halo Jon, Anda juga bisa mengedit pertanyaan asli @fschmengler dan menambahkan ini di bagian bawah sebagai PEMBARUAN . Saya pikir dia akan baik-baik saja dengan itu dan menyetujui suntingan itu.
7ochem

Ide bagus tetapi seseorang telah menambahkan sesuatu :)
Jon Holland

3

Saya bukan penggemar patching. Secara pribadi saya menghapus semua file Magento dari direktori mereka kemudian mengunggah versi baru (menggunakan skrip shell). Semua file yang terinstal selama bertahun-tahun seperti modul atau tema masih ada. Untuk database saya membuat perbandingan antara versi yang baru diinstal. Salah satu caranya adalah membuat atau menghapus kolom / tabel ke dalam basis data, cara lainnya adalah menginstal lagi Magento hanya mengubah nama file /app/etc/local.xml. Saya lebih suka yang pertama.

Jika Anda tidak mengubah struktur database ke versi 1.9.3.0 Anda akan mendapatkan beberapa kesalahan atau Anda tidak dapat memuat area admin. Jika ada yang tertarik pada beberapa perbandingan untuk direktori dan database Magento antara Magento CE 1.9.2.4 dan 1.9.3.0 cukup unduh file dari sini:

Perbandingan Magento: versi 1.9.2.4 - 1.9.3.0

Ada dua file html dengan hasil visual yang sangat bagus.

Saya memperbarui 4 toko hari ini menggunakan metode saya alih-alih menambal. Semua berjalan tanpa masalah.


Itu bagus jika Anda menggunakan versi terbaru dan ada rilis baru untuk tambalan, seperti halnya dengan 1.9.2.2, 1.9.2.3 dan 1.9.2.4 - namun untuk tambalan ini tidak ada rilis baru 1.9.2.5 . Versi 1.9.3.0 berisi banyak perubahan tambahan yang tidak terkait keamanan.
Fabian Schmengler

Dengan metode saya, saya mendapat dua dalam satu, pembaruan keamanan dan fitur baru. Satu-satunya masalah adalah Anda harus memahami apa yang terjadi pada sistem file dan database antara rilis. Ini bukan masalah besar ketika Anda tahu apa yang Anda lakukan. Dan Anda memiliki kontrol yang lebih baik. Saya melakukan metode ini sejak versi 1.7.
ADDISON74

3

Tidak beruntung pada sebagian besar pemasangan Magento CE (6 total). Versi berbeda: 1.9.1, 1.9.0.1, 1.8.1.

Saya telah mengunduh patch 8788 yang benar. Saya sudah memastikan untuk mengembalikan 1533 jika ada.

Saya mendapatkan keluaran penting utama berikut yang dipertanyakan:

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.

... memeriksa aplikasi file / kode / core / Mage / Adminhtml / controllers / IndexController.php Hunk # 1 berhasil di 373 (offset -19 baris). ...

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

Sama seperti di atas untuk: lib / Unserialize / Reader / Arr.php lib / Unserialize / Reader / ArrValue.php Dan mengatakan bakhil itu diabaikan.

Catatan: Tidak ada apa-apa di direktori Unserialized / Reader saya. Benar-benar kosong. catatan: Curl.php ada di dir pengunduh. Tidak diganti namanya. Sudah selesai, tapi saya tidak melihat file SWF dihapus. Saya tidak melihat tambalan diterapkan dalam daftar apply.patches.list

Tidak masuk akal.


Oke .. sudah tahu semuanya. Pasti perlu bekerja melalui SEMUA tambalan lama, agar. Saya punya beberapa tambalan yang lebih tua yang belum diterapkan. Setelah saya tarik itu, dan diterapkan pada baris, hal-hal mulai menambal dengan sukses. Namun, saya menemukan bahwa setiap kali saya mendapatkan kesalahan hunk pada file untuk patch APA PUN, saya harus masuk ke patch dan menemukan apa yang coba diganti dan secara manual melakukannya di instalasi magento saya. LALU hapus garis-garis "diff" dari patch dan jalankan kembali. Pada dasarnya setiap kali Anda melihat kesalahan bingkah, buka tambalan dan lihat apa yang dicoba untuk +/- dari itu, dan kemudian lakukan sendiri.
Rich Yessian

3

Saya telah menambal sekitar 10 situs web hari ini, dan setiap situs tempat tambalan SUPEE-8788 gagal, SUPEE-6788 MISSING .

Ini menghasilkan (contoh) kesalahan berikut:

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

Setelah menginstal SUPEE-6788 SUPEE-8788 ditambal dengan benar.


3

Jika Anda mendapatkan Hunk #1 failedkesalahan xxx, Inilah yang saya lakukan

Saya punya Hunk #1 failed at 373. Kesalahan !! setelah garis

memeriksa pengunduh file / lib / Mage / HTTP / Client / Curl.php

Jadi saya memeriksa Curl.phpfile dan menemukan bahwa saya telah memodifikasi file sebelumnya (berkomentar satu baris). Saya memulihkan file asli dan menjalankan tambalan lagi. Kemudian tambalan itu berhasil. ;).

Kemudian saya memeriksa:

/app/etc/applied.patches.list & Semuanya tampak baik

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.