Güvenlik Düzeltme Eki SUPEE-8788 - Muhtemel Sorunlar?


108

En yeni Magento 1 güvenlik yaması SUPEE-8788, 17 APPSEC güncellemesi içeriyor , bu yüzden mümkün olan en kısa sürede uygulamak çok önemlidir. Öte yandan, geriye dönük pek çok uyumluluk kopması var ve geçen yılki yamaların tarihi göz önüne alındığında bunu dikkatsizce uygulayamam.

İşin iyi yanı, bu kez ön uç şablonlarının bulunmaması, bu nedenle tüm temalarımızı düzeltmemize gerek yok gibi görünüyor. Bu sadece Magento 1.8 veya daha yüksek sürümler için geçerlidir.

Bununla birlikte: Yamayı uyguladıktan sonra herhangi bir uyumluluk problemi veya hata ile karşılaştınız mı?


6
"dahil ön uç şablonu yok" - daha eski Magento sürümleri için doğru değil. Örneğin, 1.7.0.2 yaması 9 ön uç / temel / varsayılan şablon dosyasını değiştirir.
Fooman'daki Kristof,

magento.stackexchange.com/questions/140571/… bunu değiştirir mi? Belki de tüm bilgileri burada
toplayın

2
Düzeltme ekinin .swf güncelleştirmeleriyle ilgili sorunları olan herkes için, 5951-9818 satırlarını düzeltme ekinden kaldırdım ve .swf dosyalarını el ile kaldırdım /skin/adminhtml/default/default/media- çünkü tüm düzeltme eki zaten yapıyordu.
Liam McArthur,

neden olduğundan emin değilsiniz ancak 1.8.0.0'daki 8788 kurulumundan sonra, 7405 numaralı yama yüklenmediğini bildirdi. v1 ve v1.1 önceden kurulurken
MagenX 13:16

2
@srinivas medya klasörünü bu yoldan kaldırdınız mı skin / adminhtml / default / default?
Priya Ponnusamy

Yanıtlar:


107

Önemli notlar

Lütfen 1.9.3'ün 1.9.2.4 + SUPEE-8788'den farklı olduğunu unutmayın . İşte ikisi arasındaki fark: https://gist.github.com/digitalpianism/14a15cd52baede0e5d600e8c653f33e9

14 Ekim Güncellemesi: yamanın v2'si yayınlandı (aşağıya bakın) 13 Ekim'den itibaren Magento web sitesinden 1.5.x ile 1.8.x arasındaki yamalar, önceki yamalar ile uyumsuzluktan dolayı alındı ​​(aşağıya bakınız):

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

Yamanın V3'ü

Bu yeni sürüm sadece Magento EE 1.13.0.x içindir

V3'ü uygulayın:

  • SUPEE 1533’i geri döndürün (takılıysa)
  • SUPEE 3941'i kurun (yüklü değilse)
  • SUPEE 8788 v3'ü yükleyin

Yamanın V2'si

V2'yi uygulayın:

  • SUPEE 8788 v1'i geri döndür
  • SUPEE 1533’i geri döndürün (takılıysa)
  • SUPEE 3941'i kurun (yüklü değilse)
  • SUPEE 8788 v2'yi yükleyin

DemacMedia, burada bulabileceğiniz yukarıdaki işlemi otomatikleştirmek için kullanışlı bir bash betiği geliştirdi: https://github.com/DemacMedia/magento-SUPEE8788-patcher

Yama detayları

Yamaya kazıldıktan sonra ilginç kısımlar (1.9.2.4'ten itibaren yama):

  • Mage_Adminhtml_Block_Media_Uploaderdeğiştirildi, Mage_Uploader_Block_Multiplebu yüzden Mage_UploaderFlash desteğini düşüren tam bir modül var . Eski blok şimdi kullanımdan kaldırıldı ve yeni bloğu genişletti.
  • Yine yükleyen ilişkin, modül yeni dışı flaş yükleyicimizi işlemek için elden geçirildi. Bu kullanır yerine şablonları kullanarak yükleme bloğu olarak.Mage_DownloadableMage_Uploader_Block_Single
  • Bu değişiklikle ardından, t o SWF dosyalarına skin/adminhtml/default/default/media/flex.swf, skin/adminhtml/default/default/media/uploader.swfve skin/adminhtml/default/default/media/uploaderSingle.swfsilindi.
  • Adres silme kontrolör şimdi formu anahtarla korunmaktadır üzerinden doğrudan getDeleteUrlgelenMage_Customer_Block_Address_Book
  • Dilek öğe kaldırma kontrolör şimdi formu anahtarla korunmaktadır yoluyla getRemoveUrlgelenMage_Wishlist_Helper_Data
  • Paypal Express ödeme yöntemi artık kullanılan müşteri e-postasının Magento'da yeni bir kullanıcıyı kontrol ederken ve kaydettirirken bulunmasını sağlıyor. (anlayın: yeni kullanıcı, yeni teklif işlenmeden önce oluşturulur)
  • CURL / HTTP İstemcisi kullanan ödeme yöntemleri şimdi CURLOPT_SSL_VERIFYHOST2'ye ayarlandı (daha önce 0 idi) ve CURLOPT_SSL_VERIFYPEERbayrak şimdi cURL çağrılarına eklendi. Eşi Doğrula bayrağı, SSL Doğrulamasını Etkinleştir açılır menüsü ile ödeme yöntemi yapılandırması ile etkinleştirilebilir / devre dışı bırakılabilir.
  • Mage_Http_Client_CurlŞimdi CURLOPT_SSL_VERIFYPEERtrue olarak ayarlandı (daha önce yanlışdı ) , onu kullanan herhangi bir özel modül varsa, dikkat edin.
  • Artık ürün resimleri için maksimum boyutlar konfigürasyonda yapılandırılabilir. Not: Çok büyük resimler yüklerseniz komik bir hata mesajı verebilir: Yama yüklemesinden sonra Magento 1.9.2.2'de izin verilmeyen dosya formatı

Bilinen SUPEE-8788 v2 sorunları

Bilinen SUPEE-8788 v1 sorunları

1.9.3.0 bilinen sorunlar

Düzenleme: liste uzadıkça ve bu cevapta konu dışı olduğu için (SUPEE-8788 ile ilgili değil) bilinen 1.9.3.0 sayılarının listesi için bu yazıya başvurabilirsiniz: https: //magento.stackexchange. com / a / 140826/2380


1
Kapsamlı liste için teşekkürler! Bir soru: tam metin arama sorununun SUPEE-8788 yaması için geçerli olduğundan emin misiniz? Bu işlevle ilgili herhangi bir değişiklik bulamıyorum.
Aad Mathijssen

1
@MageDev, lütfen sorudaki üçüncü yoruma bakın;)
Digital Pianism'deki Raphael

1
Ürün yükleyici başarılı bir yama uygulayarak ve popüler CreareSEO eklentisi kullanıyorsanız sonra çalışmazsa o zaman bu düzeltme de uygulanacak gerekecektir github.com/adampmoss/CreareSEO/pull/78
joesk

1
"Paypal Express ödeme yöntemi artık kullanılan müşteri e-postasının Magento'da bulunmasını sağlıyor" demiştir. Bu, konukların PayPal express ile ödeme yapamayacağı anlamına mı geliyor? Kayıtlı kullanıcı olmalısınız? Bir şey mi eksik?
Simge,

1
Eski yükleyiciyi kullanan bazı üçüncü taraf uzantıları, düzeltme ekini uyguladıktan hemen sonra bozuldu. "Magic 360" arka uç ürün detayları sekmelerine bir sekme ekliyor. Eklemeden sonra ürün ayrıntılarınızı göremez / düzenleyemezsiniz. Bu sorunu Magento connect üzerindeki eklenti geliştiricisine ( magentocommerce.com/magento-connect/… ) gördüm .
DarkCowboy

29

Düzeltme ekini uygularken bu hata oluşabilir:

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

8788 yaması ikili içeriğe sahip. Magento herhangi bir doğrudan indirme bağlantısı sağlamadığından (o zamandan beri bu politikadan nefret ediyorum), yamayı bilgisayarınıza indirmeli ve dosya aktarma uygulamasıyla (Windows'ta WinSCP gibi) sunucunuza yüklemelisiniz. Örneğin, WinSCP TEXT modunda yüklenecektir (WinSCP * .sh dosyalarını varsayılan olarak metin olarak ele alır).

Bunun için geçici çözüm şudur: yama dosyasını sıkıştırın / sıkıştırın ve sunucuda tekrar açın / ayırın. ve voila.


Üzgünüm, buna cevap verecek hiçbir yolum yoktu

  1. Doğru magento versiyonunu indirin (Örn: CE 1.9.1.0)
  2. Aşağıdaki dosyaları indirilen konumla değiştirin

Cilt / adminhtml / varsayılan / varsayılan / medya / flex.swf Cilt / adminhtml / varsayılan / varsayılan / medya / uploader.swf Cilt / adminhtml / varsayılan / varsayılan / varsayılan / medya / uploaderSingle.swf

  1. Yamayı çalıştır

Benim için çalıştı



10
OP sorusunu okudun mu? fschmengler sordu: "Yine de: Düzeltme ekini uyguladıktan SONRA herhangi bir uyumluluk sorunuyla ya da hatayla karşılaştınız mı?" Yamayı uygularken bu sorunla karşılaştım. Sanırım bu konunun anlamı, SUPEE-8788'in olası hatalarını belgelemek. Buna - IMHO - yamanın kendisi ile ilgili sorunlar da dahildir.
infabo

Bir tedavi çalıştı, teşekkürler! Bunu TÜM geleceğin Magento yamalarında da yapmak en iyisi midir?
KiwisTasteGood

ya da sadece dos2unix PATCH_SUPEE-8788_CE_1.9.2.4_v1-2016-10-11-07-03-46.sh
fbtb

Genellikle daha önce gerekli değildi ve gelecekte gerekli olmayacağını varsayıyorum. Sanırım yükleyici SWF'leri, Magento 1.x ile gönderilen tek ikili dosyalardı - şimdi gittiler. Bu yüzden gelecekte böyle bir sorun beklemiyorum.
infabo

3
.shYama dosyasını Magento kökünüze yüklemek için FileZilla'yı kullanırken, yama dosyasını binaryyüklemeden önce için transfer türünü ayarlayın . Referans
ForMat

25

Daha önce SUPEE-1533’ü uyguladıysanız düzeltme eki başarısız olur app/code/core/Mage/Adminhtml/controllers/DashboardController.php.

Bunu çözdüm ...

  1. SUPEE-1533 tarafından bu dosyaya eklenen değişiklikleri el ile geri alın
  2. SUPEE-8788'i Uygula
  3. SUPEE-1533 tarafından bu dosyaya eklenen değişiklikleri el ile yeniden tanıtın

Değişikliğin SUPEE-8788'den kaldırılması tehlikelidir, çünkü yama dosyası ikili veriler içerir ve onu bir düzenleyicide kaydetmek sorunlara neden olabilir (başka bir sonuç).


Anladığım kadarıyla, orijinal 1533 yamasını geri aldınız, SUPEE 8788'i yükledikten sonra 1533'ü tekrar kurdum. Doğru anlıyor muyum
Simge,

Ayrıca 28 app / design / frontend / base / default / template / review / form.phtml
Simge

9
Neden, resmi artımlı yamaları düzgün bir şekilde uygulamak için zaman ayırdığımızda, daha önce verilen yamalar uygulandığında yamalar çalışmadığında manuel düzeltmeler yapmak zorunda kaldığımızda bunun için cezalandırılıyoruz. Çok garip bir yaklaşım.
Jon Holland,

1
SUPEE 1533'ün kurulu olduğu 1.9'ın altındaki sürümlerin çoğu, yamayı düzgün şekilde kuramaz. SUPEE 8788 1533 ile uyumlu değil
Simge

2
@JonHolland Çünkü, bu Magento.
Agop

25

İşte şu ana kadar karşılaştığım şeylerin bir özeti: Sıralı tutmaya çalışıyorum, eksik olan bir şey eklemek veya bağlamaktan çekinmeyin, gönderi bir Topluluk Wiki'sidir:

Başarısız yama nedenleri

"HATA: Düzeltme eki başarıyla uygulanamıyor / geri alınamıyor" görüyorsanız, düzeltme ekinin hangi dosyada başarısız olduğunu kontrol etmek için günlük iletilerinde "Hunk # 1 FAILED" ifadesini arayın.

  • Görünüşe göre Magento 1.7 yamasının v2'si SUPEE-3941'in sadece Magento 1.8 ve 1.9 için var olmasına rağmen sunulmasını bekliyor . Eğer Magento 1.7’de iseniz ve dosyalardaki hataları görürseniz downloader, 1.8 için SUPEE-3941'i indirin ve 1.7'ye uygulayın, çalışması gerekir. Buraya yorum konusuna bakın: Security Patch SUPEE 8788 problemi
  • SUPEE-1533'ün daha önce uygulanmış olduğu Magento sürümlerinde, yama başarısız olur, app/code/core/Mage/Adminhtml/controllers/DashboardController.phpçünkü dosya hem yamalardan etkilenir hem de SUPEE-8788 (yanlış!) Yamalı sürümün mevcut olduğunu varsayar. Bu hala yamanın sürüm 2'sinde geçerlidir! Sürüm 2, SUPEE-1533’deki değişiklikleri içerir, bu nedenle daha önce yüklediyseniz, yine de geri almanız gerekir, ancak daha sonra tekrar el ile uygulamanız gerekmez.

  • "Downloader" dizinini sildiyseniz veya yeniden adlandırdıysanız, yama indiricinin içindeki bir dosyayı yamasından dolayı başarısız olur. En kolay geçici çözüm, orijinal indirme dizini geri yüklemek, yamayı uygulamak ve dizini tekrar silmek. Alternatif olarak, talimatları downloader/lib/Mage/HTTP/Client/Curl.phpyamadan da kaldırabilirsiniz .

  • Diğer "Hunk FAILED" mesajları genellikle çekirdek dosyalarındaki değişikliklerden veya önceki yamalar eksikliğinden kaynaklanır. Magento versiyonunuz için önceki tüm yamaların kurulu olduğundan ve çekirdek dosyalarda değişiklik yapmadığınızdan emin olun.

  • Yaygın olarak karşılaşılan bir başka problem ise, yamanın .swfikili içerikleri nedeniyle dosyaları silememesidir. Hata şöyle görünecek:

    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

    ya da böyle

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

    veya bunun gibi:

    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.

    Bu cevapta olası çözümler @infabo tarafından verilmiştir. Açıklandığı gibi kıvırmak kullanarak, bunu uygulamak istediğiniz sisteme doğrudan yama indiriliyor https://gist.github.com/piotrekkaminski/9bc45ec84028611d621e , ben Cygwin üzerinde denedim dışında hep benim için çalıştı

Arızalı yamalar ile başa çıkmanın gelişmiş yolu: @PeterOCallaghan kuru çalışma hattını yorumlamayı ve * .rej dosyalarıyla manuel olarak ilgilenmeyi önerdi. Bu şekilde yama kısmen uygulanabilir ve swf dosyalarını silemezse, bunu manuel olarak yapabilirsiniz. Ya da bu downloaderdizini sildiğiniz için dosyaları güncelleyemezse , bunu görmezden gelebilirsiniz.

  1. vi PATCH_SUPEE-8788_CE_1.8.1.0_v1-2016-10-11-06-54-44.sh(veya benzer bir dosya adı) _apply_revert_patch dry-rungibi görünmek için değiştirin#_apply_revert_patch dry-run

  2. yamayı yayınlayarak çalıştırın ./PATCH_SUPEE-8788_CE_1.8.1.0_v1-2016-10-11-06-54-44.sh

Bu dosyalarınızı yamalayacak

  1. Yorum _apply_revert_patchiçin#_apply_revert_patch

  2. app/etc/app/etc/applied.patches.listgirişi eklemek için yamayı yeniden çalıştırın

  3. tüm .rej dosyaları için grep

    git status | grep *.rej

  4. bu değişikliklerde manuel olarak çalış

Yama uygulandıktan sonra karşılaşılan sorunlar

Form tuşları

  • 1.8'den önceki Magento sürümleri için frontend/base/defaultşablonlarda değişiklikler vardır . Bu dosyaları geçersiz kılarsa temanızda aynı değişiklikleri elle uyguladığınızdan emin olun.

    Daha spesifik olarak, aşağıdaki gibi ön uç işlemleri için bir form anahtarı eklenmiştir:

    • Bir öğeyi istek listesinden çıkarma
    • Bir müşteri adresini mağaza görünümünden silme
    • Sepetinizdeki bir teklif öğesini güncelleme

    Bu işlemlerle ilgili sorunlarla karşılaşırsanız, @LukeRogers'ın bu cevabına bakın .

Özel yükleyici

Unirgy_Rapidflow ve özel yükleme formlarına sahip diğer uzantılar artık çalışmıyor.

Bkz bu cevabı @mpchadwick tarafından ve @lloiacono tarafından açıklama

Ben değiştirerek düzelttim $this->getUploader()->getConfig()ile $this->getUploader()->getUploaderConfig()deUnirgy_RapidFlow_Block_Adminhtml_Profile_Edit_Tab_Upload

Uzantılarınızdan birinin bunu kullanıp kullanmadığını bulmak için, komut satırında aşağıdakileri çalıştırabilirsiniz:

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

Rapor edilen hata mesajları

  • PHP Ölümcül hata: Tanımsız işlev çağrısı hash_equals ()

    Eğer önce 5.6 için bir PHP sürümüne ve geçersiz olur code/core/Mage/core/functions.phpiçinde code/local/Mage/core/functions.php(eğer Fishpig uzantıları kullanırsanız davayı olabilir). Bkz bu cevabı @ClaudiuCreanga tarafından


Yamanın v2'sinde çözülen sorunlar

Bu sorunlardan herhangi biriyle karşılaşırsanız, muhtemelen yamanın 1. sürümünü kullanırsınız (dosya adındaki "v1"). Bu sorunları düzelten "v2" almak için düzeltme ekini tekrar indirin:

  • SUPEE-3941 ile bir uyumluluk sorunu vardı ve downloader/lib/Mage/HTTP/Client/Curl.php

  • /Lib/Unserialize/Reader/ArrValue.php içindeki 'Desteklenmeyen veri türü N' mesajını içeren 'İstisna'

  • EE 1.14.2.0 için olan düzeltme eki yanlışlıkla silmeniz gereken test_oauth.php adlı yeni bir dosya içeriyordu ! Bu cevabı gör @MatthiasZeis tarafından


Sepette alıntı öğeyi güncellenmesi (değil 1.9.2.4 en az) SUPEE-8788 ile eklenmiştir şey değilken Formu tuşu eklendi
Raphael Dijital pianism en

@RaphaelatDigitalPianism en azından 1.13.0.1 yamasını ekler Mage_Checkout_CartController::updatePostAction, potansiyel olarak diğer yama versiyonlarına da anahtar doğrulama yapar .
Luke Rodgers

23

Alırsan

Call to undefined function hash_equals() error

Düzeltme ekiniz başarılı olsa bile, işlevlerinizde app/code/local/Mage/Core.

Bu işlevi de oraya eklemeniz gerekecek çünkü bu dosya çekirdeğin üzerine yazıyor.

Bu yüzden app/code/local/Mage/Core/functions.phpsonuna yerleştirin:

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
El yapımı Fishpig'in bunu yapmanı istediğini biliyorum. Öyleyse, bunu kurduysanız, bu sizin için bir sorun olacaktır.
mpchadwick

1
Aklım karışıktı ve bunu functions.php değil Fishpig geçersiz kılmak için sorar MWI geçerli: Not mwi-plugin.com/documentation/installation
mpchadwick

18

Olarak PATCH_SUPEE-8788_EE_1.14.2.0_v1-2016-10-10-02-27-03.sh, bir dosya test_oauth.phpMagento kök dizininde oluşturulur. Bunu silmek isteyeceksiniz (ya da en azından bunu üretime dağıtmayacaksınız), çünkü https: //thedomain.tld/test_oauth.php URL'sini çağıran kişiye tam bir istisna yığını izlemesi gösterebilir .


Güzel yakala, Matthias! 17 APPSEC yamasını yerleştirmek ve aynı anda başka bir vektör açmak için biraz kötü bir form olurdu. Bunu Magento'ya rapor ettin mi?
Bryan 'BJ' Hoffpauir Jr.

Bu konuda Magento Destek ile bir bilet açtım, başkalarının bu noktada sahip olduklarından eminim. Düzeltme ekinin v2 sürümü hakkında bir şey duymadım, ancak sorunun farkında olmaları gerekir.
quasiobject

1
Bir v2 olacak, çok yakında yayınlanmalı. Evet, buraya gönderdiğimde bildirdim.
Matthias Zeis

1
Bu şimdi sabit gibi görünüyor
Erfan

18

1.7 MAGENTO SÜRÜMLERİ İÇİN BU UYGULAMALAR


SUPEE 8788'in 1.7.0.2 sürüm 2'sini çalıştırıyorsanız , 372 numaralı hatta aşağıdaki değişiklikleri uygulamaya çalışırken başarısız olurCurl.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

Talimatlar, bu gerektiğini söylüyorlar SUPEE-1533 dönmek ve SUPEE-3941 yükleyin

SORUN: SUPEE-3941 sadece Magento CE 1.8-1.9 için kullanılabilir. 1.7 için uygulamayı deneyebilirsiniz ve geçerli olacaktır. benceyama geliştiricileri Magento, 1.8'in altındaki magento'ları çalıştıranlar için SUPEE-8788'in 3. versiyonunu yayınlamalı veya 1.8'in altındaki versiyon için tasarlanmış ek bir SUPEE-3941 yaması oluşturmalıdır.

Btw SUPEE-8788 sürümü 1 vermedi sahip Curl.php1.7.0.2 hatayı (Ben birçok yüklemeleri üzerinde test)

İpucu: sonunda .swf hatalarıyla karşılaşıyorsanız, Düzeltme ekinizi sıkıştırdığınızdan, sunucuya yüklediğinizden ve orada sıkıştırmayı çözdüğünüzden emin olun. WF hatası gider.

GÜNCELLEME:

Magento, SUPEE-8788'i uygulamada hatalardan kaçınmak için SUPEE-3941 yamasını Magento 1.7.0.2 sürümüne kurmanın uygun olmadığını söyledi.


Biz
pes

@ kavoir.com ayrıca 1.7.0.2'ye yüklerken aynı CURL.PHP hatasını alıyorsunuz ??
İkon

1
Buradaki sorun, 87.0 V2'yi 1.7.0.2'ye yüklüyor, ilginç olmasına rağmen, SUPEE-3941 sürümünde olmayan yeni 1.9.2.1 sürüm sitelerimizde aynı curl.php hatasını alıyoruz. 1533'ü geri almak da bu soruna yardımcı olmuyor
Jon Holland

@JonHolland magento ekibine yazdım ... İnşallah cevap verir
İkon

2
Ben temelde .. 1.7.0.2 sürümüne 3941 yama yüklemek için okey magento toplum liderinden cevap var
Simge

15

Orijinal DashboardController.php (1.7.0.2 - Sakatlanmadı, Magento'dan yeni çıktı)

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

1533 Yamalı DashboardController.php aşağıdaki değişikliği içeriyor

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

8788 düzeltme eki DashboardController.php dosyasında aşağıdaki değişiklikleri yapar

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

8788’in 1533’e göre değiştirilmiş bir değişikliğe sahip olduğunu görebildiğiniz gibi, mpchadwick’in önerdiği gibi dosyayı değiştirmek için ideal olduğundan emin değilim, 8788’ten 8788’ten sonra 8788’yi 1588’le el ile değiştirerek.

Baska öneri?


2
IMO İstenen nihai sonuç, ikisinin bir karışımıdır. Json_decode olmalı, ancak == yerine hash_equals kullanmalı. Bu, bir zamanlama saldırısını önler (bu, kullanımı çok zor olurdu).
Peter O'Callaghan

@Peter ile aynı fikirde. Git'i kullanırsanız, SUPEE-1533'e olan taahhüdünüzü geri alın, yeni yamayı uygulayın, kabul edin, sonra geri alma işlemini tekrar geri alın. Çatışmalar DashboardController.phpo zaman otomatik olarak çözülmeli.
Fabian Schmengler,

1
DashboardController.php için 8788'i yükledikten sonra değiştirmemiz gereken bir kod parçası verebilir misiniz? Ne dediğimden tam olarak emin değilim, yukarıda belirttiğim gibi, 1533 ve 8788 yama satırları farklı görünüyor. El ile değiştirilmiş bir sürümün nasıl görünmesi gerektiğini lütfen verebilir misiniz?
Simge

1588 güncellemesinde manuel değişiklikten sonra 8788 kodunun böyle görünmesi gerekiyor mu? if (hash_equals ($ newHash, $ gaHash)) {if ($ params = json_decode (base64_decode (urldecode ($ gaData))))) {
Simge

1
Geri alma işleminin iki kez yapıldığına dair not: SUPEE-1533'ü fazladan ödeme oluşturmadan kullanmak git revert -n 123456abve git cherry-pick -n 123456abgeçici olarak geri almak mümkündür.
Matthias Zeis

14

Yarısı bu yayını öncelikli olarak fikir temelli veya açık bir cevap olmadan işaretlemeye özendirdi;)

Form denetleyicileri birkaç denetleyiciye eklendi, sayı magento sürümünüze bağlı olarak değişir.

Eğer sorun yaşarsan

  • Bir öğeyi istek listesinden çıkarma
  • Bir müşteri adresini mağaza görünümünden silme
  • Sepetinizdeki bir teklif öğesini güncelleme

Tema .phtmldosyanızı kontrol etmeniz ve POSTform anahtarı parametresini ele aldığınızdan emin olmanız gerekir; böylece kontrol eylemlerinde kontrolü geçecek:

class Mage_Checkout_CartController extends Mage_Core_Controller_Front_Action

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

Bu sorunlar, önceki yamalardaki pek çok kişiyi tetikledi, yamaları uygularken özel geçersiz kılma şablonlarına sahip ön uç temaları kolayca gözden kaçıyor.

Form tuşları, genellikle .phtml, formu içeren şablona fazladan bir inputbenzer olarak eklenir.

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

Bunu etkileyen formların tam bir listesi var mı? Bu yüzden onları bir kez ve Herkese sabit bulabilirim. Bu gibi müşterileri kızdırmak veya dönüşüm oranını düşürmek için gizlice aptalca işlev bozukluğu istemiyorum.
datasn.io

Bir SUPEE 8788, 1.7'ye mükemmel şekilde kurulduysa ve değişiklik yaparsa (app / design / frontend / base / default / template .....). Ancak web sitesi önyüz listesinin değişmesine rağmen, tüm düğmeleri mükemmel şekilde çalıştıran düğmeyi ekle. Tema dosyalarını el ile düzeltmemize hala gerek var mı? Veya, uzun yama ön uçta hiçbir şey kırmadığı gibi olduğu gibi bırakabiliriz.
İkon

11

Aynı problemi swf'de 1.9.2.4'te karşıladım.

Fox Sabit - Lütfen aşağıdaki adımları izleyin.

1. Adım. Güvenlik yaması 8788 SSH dosyasını bu Bağlantıya indirin: - https://magento.com/tech-resources/downloads/magento/

Adım 2. Güvenlik düzeltme ekini 8788 SSH dosyasını indirdikten sonra Lütfen bir klasöre koyun ve aynı klasörü Zip dosyası yapın.

Adım 3. Lütfen Zip klasörünü root magento klasörüne yükleyin ve SSH Putty ile sıkıştırmasını açın.

Adım 4. Düzeltme ekini çalıştırın: - $ bash PATCH_SUPEE-8788_CE_1.9.2.4_v1-2016-10-11-07-03-46.sh

* Not: O yama dosyası tüm ikili dosyaları metin biçiminde içerir. Bu yüzden zip dosyası olmadan 8788 SSH güvenlik düzeltme ekini yüklediğinizde, aynı dosya bozuk olacaktır. *


10

SUPEE-8788'i uyguladıktan sonra artık Unirgy_RapidFlow 2.0.0.18 kullanarak "İçe Aktar" profilleri yükleyemedim, 500 hatası alıyorum (Apache veya HTTPD günlüklerinde hiçbir şey yok).

Ben hala çözmek için Unirgy ile hata ayıklama ve çalışma sürecinde yaşıyorum, ancak yükleyici bloğu soruna neden oluyor gibi görünüyor ( Unirgy_RapidFlow_Block_Adminhtml_Profile_Edit_Tab_Upload).

Yama Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Gallery_Content, ebeveyne birkaç değişiklik getirdi .

URapidFlow'a ek olarak, dosya yüklenmesine izin veren diğer 3. parti modüller de SUPEE-8788'in bozulmasına neden olabilir.


Bunun için bir çözüm buldun mu? $ This-> getUploader () -> getConfig () işlevini $ this-> getUploader () -> getUploaderConfig () işlevini Unirgy_RapidFlow_Block_Adminhtml_Profile_Edit_Tab_Upload
lloiacono

Şimdilik iyi. Unirgy ayrıca 2.0.0.23'te düzeltmiş görünüyor. secure.unirgy.com/release-notes.php?m=1#RapidFlow Ek yükseltmeler satın almak için bir müşteriyle çalışıyorum ve onaylayamadım.
mpchadwick 18:16

başka hangi dosyaların düzeltilmesi gerektiğini bulmak için bunu docroot'unuzda çalıştırın: grep -r 'getUploader () -> getConfig ()' ./
lloiacono 19:16

8

Yama betiğini yürütürken aşağıdaki mesajı aldım:

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

Bunun nedeni https://www.magereport.com adresindeki önerileri izleyerek "downloader" klasörünü yeniden adlandırdım .

Klasörü geçici olarak "downloader" olarak değiştirdim, yamayı doğru uygulayıp gizli adını değiştirdim.


8

SUPEE-3941 nedeniyle 1.9.0.0'daki düzeltme eki de başarısız oluyor (muhtemelen 1.9.0.1'e kadar 1.8.0.0 etkilendi). 3941, downloader / lib / Mage / HTTP / Client / Curl.php yamasını indirdi ve şimdi 8788 başarısız oldu.

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

1.9.0.1 için aşağıdaki geçici çözüm. Değişiklikler çok kapsamlı, 8788 yamasının kendisini ayarlaması gerekebilir.

düzenleme: Yamayı düzenleyin, Curl.php dosyasını arayın ve değiştirin

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 

ile

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

Önceki yamaları yükledikten sonra tüm Magento sürümleri için çalışacak yama dosyalarını özelleştirdim: magentohosting.pro/files/MageHost.pro_fixed_SUPEE-8788_v2.zip
Jeroen Vermeulen - MageHost 13:06

8

İşte ne alıyorum

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

Bir kurulumda aynı hatayı alıyorum. Bir şey bulup çözmediğini bilmek isterim.
TunaMaxx

Hayır, hala bunu çözmek için başkasını bekliyor
Haim

2
Bakınız magento.stackexchange.com/a/73957/9276 . Curl.php dosyanızda bu düzeltme varsa, bu değişikliği geri alın (satırı CURLOPT_SSL_CIPHER_LIST / 'TLSv1' konumuna çevirin), yamayı uygulayın ve değişikliği tekrarlayın.
Joe

@Joe'ya teşekkürler. Aynı bilgiyi göndermek için buraya geri dönüyordum. Beni yendin! Uyumaya başladığım şey buydu. :)
TunaMaxx

Aynı sorunu vardı, bu çözüldü. Teşekkürler!
dafyddPrys 18:16

8

Görünüşe göre Magento , SUPEE 1533 uyumluluğunu düzeltmek için SUPEE 8788'in güncellenmiş sürümünü piyasaya sürüyor olacak. Şu an elle uygulamanın iyi bir fikir olup olmadığından emin değilim. Manuel değişiklikler gelecekteki yama güncellemelerini tehlikeye atabilir. Düşüncelerini duymak istiyorum.

Magento Topluluk Yöneticisi tarafından onaylandı. Oct 13 olarak 15:00 EST .. 1.9 aşağıdaki sürümler için tüm yamalar indir listeden silinir https://www.magentocommerce.com/download?_ga=1.236497153.1889606568.1445610645 : post bak https://community.magento.com/t5 / Güvenlik-Yamalar / SUPEE-8788-VE-SUPEE-1533-Uyumsuz-Hunk yanılma / mp / 50514 / vurgulamak / yanlış # M1805


1
Eğer güncellenmiş yama bizim manuel düzeltmeler daha tam olarak aynı sonucu vardır ve ben bu durumda umut, sonra bir sorun görmüyorum. Güncellenen yama gerekli olmayacak ve gelecekteki yamalar bir fark görmeyecek.
Fabian Schmengler,

1
@ fschmengler, SUPEE-7405 IMO için PHP 5.5 uyumsuzluğuna oldukça benziyor. Yama manuel düzeltmeyi yansıtacaktır.
Raphael, Digital Pianism'de

1
@ fschmengler Benim bilgime göre magento yine aynı yamayı tamamen düzeltecek. ..! Ben eski yama (kendinden değiştirilmiş) kaldırmak ve (muhtemelen ertesi gün serbest bırakmak Yarın biz güncellemeyi alacaktır Teşekkür yardım için yeni yüklemek için elinden geleni olduğunu tahmin
Simge

Bu katkının değerinden şüphe etmiyorum, ancak Soru ve Cevap stiline bağlı kalarak, bu cevap bana bir cevap gibi gözükmüyor, @fschmengler'in orijinal sorusuna ekleyebileceği bir güncelleme (veya bunu ekleyebilir) Topluluk Wiki cevabı).
07:

8

Diğer yayınlarda görmediğim aşağıdaki yeni sorunların raporlarını alıyoruz:

  • Bazı durumlarda yeni sürümlerde istisna - addCrumbs () yöntem çağrısı (getStoreConfig (web / default / show_cms_breadcrumbs) tanımsız olduğunda). Yamayı etkilememeli, yalnızca 1.9.3 / 1.14.3 sürümü

/Lib/Unserialize/Reader/ArrValue.php 'de /lib/Unserialize/Reader/ArrValue. yama sürüm 2'de çözüldü.

Şu anda bu sorunlar için bilinen kolay bir çözüm bulunmamaktadır. Onları yeni bir yama sürümünde çözmek için çalışıyoruz.


Desteklenmeyen veri türü N hatası için olası düzeltme gist.github.com/balloz/ceaf5feb5ac66caaa82342441d32aa88
Raphael, Digital

SUPEE 8788'i 1.6 ve 1.7 sürümlerinde kurarken Curl.php hatasını aşmanın nasıl bir fikri var mı?
Simge

8

Yüklenebilen ürünler için aynı anda örnekler ve bağlantılar için aynı dosyayı yüklediğinizde yükleyici kırılıyor. Bunun sadece her iki alanda da aynı dosyayı kullanırsanız olduğunu unutmayın. (Yamadan önce doğru çalışıyordu.)

İndirmek için, indirilebilir bir ürünü düzenleyin ve İndirilebilir Bilgiler sekmesine tıklayın:

  1. Akordeondaki Örnekler satırını açın ve bir örnek dosyasına göz atın.
  2. On Linkler akordeon satırınızda bir indirme bağlantısı için göz
  3. Bağlantılar bölümünden Dosya Yükle'yi tıklayın .

Yükleyici, indirilebilir link dosyası yerine örnek dosyayı yükler ve indirilebilir link bölümünde göz attığınız dosya kaybolur.

Bunu, 1.7.0.2 CE kurulumlu yamalı bir vanilyada çoğaltabildim.


Bunun, yükleme için kullanılan altta yatan JS lib'in
Laura

6

Evet, giriş yaparken başka bir sorunla karşılaştım, her zaman şunu döndürecek:

Bunun nedeni Enterprise_Pci_Model_Observer sınıfında 165

Onun yerine:

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

Bu çözecek:

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

Çekirdeği değiştirmeyi sevmediğimden (hatta yerellere taşınmak bile), Magento'nun bunu düzeltmesi veya netleştirmesi en iyisidir. Şu anda benimki bunu genişletmek için yeni uzantılar yaratıyor ve getPassword () işlevini yaratıyor (çünkü tüm geliştiricilerin Geliştirici modunu kullandığından emin olmak istiyorum).


2
Şimdi yamanın V2'sini uyguladıktan sonra, EE1.12'yi yayan aynı sorunla karşılaşıyorum. Görünüşe göre bu dosya 1.12 ile 1.14 arasında bir noktada değişmiş ancak yamaların bir parçası olarak değişmemiş
Chris

1
Magento ile bunu yükseltti ve sorunu ele almak için başka bir yama sağladılar. Değişim yukarıdaki ile aynıdır.
Chris

6

Düzeltme Eki Dosyasını Düzenleme

Herhangi birinin yama dosyasını düzenlemesi gerekiyorsa, yama içinde kapsanan ikili dosyaları kıracağından, bir düzenleyicide yapmamanız gerekir.

Bir komut satırı varsa kullanışlı yani. linux / * unix, sedbelirli satırları kaldırmak için yardımcı programı kullanmayı deneyin .

Bahşiş için @ fooman atar. Onun Bkz orijinal özünü

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

Bu, 101 - 111 hattını tamamen silecektir.

Form Gönderme Sorunları.

Yukarıda belirtilen sayıları görüyorsanız, şunları da yapabilirsiniz:

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

Daha fazla bilgi için bu yazıya bakın. GetBlockHtml ('formkey') nedir?


4
<?=Her php yapılandırmasında etkin olmadığına dikkat edin
Digital Pianism'deki Raphael,

@RaphaelatDigitalPianism haklısın. <?=Çoğu php.ini yapılandırmasında varsayılan olarak etkin olmasına rağmen , bazı ana bilgisayarlar devre dışı bırakmayı seçmektedir.
Sergei Filippov

5

CE 1.6.2.0 ve SUPEE-3941

SUPEE-8788 (Yama 2), ( http://devdocs.magento.com/guides/m1x/other/ht_install-patches.html#apply-8788-new ) güvenlik düzeltme ekini uygulamak için önce SUPEE-3941’i uygulamanız önerilir. .

Bununla birlikte, yama indirme sayfasında, CE 1.6.2.0 için SUPEE-3941 yaması yoktur. Yama sadece CE 1.8 ve 1.9 için kullanılabilir.

Bu konuda belirtildiği gibi, kullanılabilir SUPEE-3941 yamasını (CE 1.8 ve 1.9 için) CE 1.7'ye uygulamak uygun görünmektedir.

CE 1.6.2.0'da SUPEE-3941 (CE 1.8 ve 1.9 için) uygulamak da uygun mudur? CE 1.6.2.0'a uygulamayı denedim ve aşağıdaki hatayı aldım:

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

Biraz geç ama SUPEE-8788 V2 yamasında en azından Magento 1.7.0.2 ve 1.7.0.1 için yama dosyaları için geçerli bir sorun bulduk . Muhtemelen bu, bir yama sürümünün mevcut olduğu önceki tüm sürümler için de geçerlidir. Yama, 1.8'den sonraki sürümlerde etkilenmez, çünkü yama olanlar için şablonlar değiştirilmez.

Detayda

Yamada bir formkey eksik. app/design/frontend/base/default/template/persistent/checkout/onepage/login.phtml

Giriş yapmadan giriş sayfasındaki kasada çalışmıyor (sadece hatasız çalışmıyor).

düzeltmek

Aşağıdaki yamadaki gibi bir formkey girilmelidir:

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

1533 Yamalı site için sadece PATCH_SUPEE-8788 ***** 'nin altındaki çizgiyi değiştirin.

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) 

tarafından:

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

Temelde 1533'ü geri aldı ve 8788'i birlikte bıraktı.


Anladığım kadarıyla, 8788 DashboardController.php dosyasındaki değişiklikleri geçersiz kılar ve orijinal 1533 değişiklikleri ortadan kaldırılır mı?
Simge

2
Evet, 1533’ün serialize () yöntemini json_encode () ile değiştirmesi, saldırı geçirme şansını azaltmaktı ($ newHash == $ gaHash). 8788 aynı amaç için hash_equals () eklerken
William Zhao

Harika, test sitemde temiz DashboardController.php (hisse senedi dosyası) yükledim ve SUPEE 8788'i yükledim biraz başka bir yol yapmak istiyordum. Ancak, bu forumu okudum ve supee 1533 değişikliğini Supee'ye elle eklemekten bahsettiğim bir beyefendi 8988 değiştirilmiş dosya. Benim yöntemim hakkında ne düşünüyorsun?
Simge,

Simge, yukarıdaki farkıma bakın, SUPEE 1533 tarafından 'app / code / core / Mage / Adminhtml / Block / Dashboard / Graph.php' içinde güncellenen satırı geri almanız gerekebilir; yamalı. Aksi takdirde Graph.php, json formatı paramlarını patlatacak ve seri hale getirmeyerek kodunu çözemeyeceksiniz ()
William Zhao

4

Yamayı uyguladıktan sonra Authorize.net yakalama bozuldu. Yetkilendirme iyi çalışır, ancak fatura ödemesi yapılırken "Ağ Geçidi hatası: Kredi kartı numarası gereklidir" mesajı verilir . Ödeme günlüğü dosyası x_typeparam değerinin auth_captureşimdi geçtiğini gösterir , ancak düzeltme eki geçmeden önce prior_auth_captureiyi çalıştı. Bu sorunu yaşayan var mı?

GÜNCELLEME: Bu sorunu düzeltmek - Authorize.net yakalanmıyor


4

SUPEE-8788 ile SSH kullanarak Magento 1.9.2.4 bir kopyasını yamadım. SUPEE-8788 ile ftp kullanarak Magento 1.9.2.4'ün bir kopyasını yamadım. SUPEE-8788 ile SSH kullanarak magento 1.9.1.0 kopyasını ekledim. Magento'nun yeni bir kopyasını kullandı 1.9.3.1

SUPEE-8788'e sahip tüm bu magento web sitelerinde aynı problemi yaşıyorum (belki de bir hata)

İndirilebilir ürünleri kullanma ve giderek İndirilebilir bilgi sağlama> Samples i çalıştığınızda yeni bir satır ekleyin "X" üzerine tıklayarak (bir veya daha fazla) i satırı kaldırmak için artık mümkün değilimgörüntü tanımını buraya girin

Magento'da o kadar uzman değilim, bir çözüm bulmaya çalışıyorum. Eğer gönderirsem bulabilirsem, herhangi birinizin bir çözümü varsa, benim için çok çok yararlı olacaktır.

GÜNCELLEME : Chrome müfettiş kullanarak bu hatayı gördüm:görüntü tanımını buraya girin

******* ÇÖZÜM KURULDU *******

2 gün geçirdim ve umarım bu başkasına yardım edebilir, bu SUPEE-8788’de bir hatadır

Samples.phtml dosyasını açın app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable

İşlevi bulun

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

ve ile değiştirin

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

Bu HATA çözecek


3

1.9.2.1 çalıştıran sitenin test kopyasına PATCH_SUPEE-8788_CE_1.9.2.1_v1-2016-10-11-07-00-43 uygulandı ve satın alma işlemi bozuldu. Düzeltme ekini geri alın ve ödeme normal şekilde tekrar çalışır.

Siparişi gönderirken, ödeme başarısı yerine sizi sepete geri götürür. Tekrar denemeden önce .1 sürümünü bekliyor olacağımı düşünüyorum.


sipariş kaydedilirken bir istisna atılmış gibi sesler geliyor, günlüklerinizi kontrol ettiniz mi?
simonthesorcerer

Sınıf hattında 547 günü ... / public_html / app / Mage.php bulunamadı 'Mage_Core_Helper_UnserializeArray': bu yolla ... PHP Ölümcül hata görünüyor
Adam Lavery

@AdamLavery Var / önbellek bölümüne gidin ve önbellek klasörünü silin. Pakları orijinallere geri döndürdüğümde bu hatayı alıyorum. Bu bir önbellek şey.
Simge,

Yeni yama yakında çıkacak. Bu, hata beklememek için büyük bir yama güncelleme ... Evet ... parmak çarpı işareti.
Simge,

1
Bu, büyük olasılıkla eksik olduğunuz için mümkündür. app/code/core/Mage/Core/Helper/UnserializeArray.phpBu, yüklü olmayan SUPEE-6788'e eklenmiştir. SUPEE-8788'in SUPEE-6788'e belgesiz bir bağımlılığı var gibi görünüyor.
Tyler V.,

3

Magento'nun ilk saatlerinde yeni e-posta, SUPEE-1533 ve SUPEE-3941 uyumluluk sorunları ile başa çıkmak için yeni yama sürümleri üreteceklerini belirtiyor. Belki de atlarını bir süreliğine tut.

KURUMSAL SÜRÜM 1.14.3, TOPLUM SÜRÜM 1.9.3, VE SUPEE-8788 İşletme Sürümü 1.14.3 ve Topluluk Sürümü 1.9.3, 120'den fazla kalite geliştirmenin yanı sıra PHP 5.6 desteği sunar. Ayrıca aşağıdakiler de dahil olmak üzere kritik güvenlik sorunlarını çözer: ...

... SUPEE-8788 yaması daha önceki Magento versiyonlarında bu güvenlik sorunlarını giderir. Ne yazık ki, daha önce SUPEE-1533 veya SUPEE-3941 güvenlik düzeltme eklerini uygulamışsanız, Topluluk Sürümü 1.8 ve önceki sürümleri için SUPEE-8788 eklerinin ya da Enterprise Sürüm 1.13 ve önceki sürümlerinin başarısız olduğunu keşfettik. Bu sorunu düzeltmek için çalışıyoruz ve önümüzdeki bir ila üç gün içinde yeni yamalar sunacağız. O zamana kadar, SUPEE-8788 yamasının bu sürümlerini dağıtımdan kaldırıyoruz ...

Ancak aktif Magento versiyonlarımın çalışmalarının söylediği CE 1.9.3 ile V1.8 ve altı için yakında yeni sürümler arasında kalmasından endişe duyuyorum. Onlarla temasa geçtim, bekleyip ne dediklerini göreceksiniz.


Gerçekten bir "cevap" değil, faydalı bir bilgi umarım.
Jon Holland,

Merhaba Jon, ayrıca @ fschmengler'in orijinal sorusunu düzenleyebilir ve bunu bir UPDATE olarak ekleyebilirsin . Bence onun için iyi olur ve bu düzenlemeyi onaylardı.
07:

İyi fikir ama birileri zaten bir şey ekledi :)
Jon Holland

3

Ben büyük bir yama hayranı değilim. Şahsen, tüm Magento dosyalarını kendi dizinlerinden kaldırırım ve sonra yeni sürümü yüklerim (bir kabuk betiği kullanarak). Yıllar boyunca modüller veya temalar gibi kurulan tüm dosyalar hala orada. Veri tabanı için yeni kurulu sürümler arasında bir karşılaştırma yapıyorum. Bir yol, sütunları / tabloları veritabanına oluşturmak veya kaldırmak, diğer yol ise Magapp’ın sadece /app/etc/local.xml dosya adını değiştirerek yeniden kurulmasıdır. Birincisini tercih ederim.

Veritabanı yapısını 1.9.3.0 sürümüne değiştirmezseniz bazı hatalar alırsınız veya yönetici alanını yükleyemezsiniz. Herhangi biri Magento dizinleri ve Magento CE 1.9.2.4 ile 1.9.3.0 arasındaki veritabanları ile ilgili bazı karşılaştırmalarla ilgileniyorsa, dosyayı buradan indirin:

Magento Karşılaştırma: 1.9.2.4 - 1.9.3.0 sürümleri

Çok güzel görsel sonuçları olan iki html dosyası var.

Bugün 4 mağazayı yama yerine yöntemimi kullanarak güncelledim. Hepsi sorunsuz çalışıyor.


En yeni sürümde iseniz ve yama için yeni bir sürüm varsa, 1.9.2.2, 1.9.2.3 ve 1.9.2.4'te olduğu gibi güzel - ancak bu yama için 1.9.2.5 yeni sürüm yoktu. . Sürüm 1.9.3.0, güvenlikle ilgili olmayan bir sürü ek değişiklik içermektedir.
Fabian Schmengler,

Metodum ile iki tane var, güvenlik güncellemeleri ve yeni özellikler. Tek sorun, dosya sistemine ve veritabanına sürümler arasında neler olduğunu anlamanızdır. Ne yaptığını bildiğin zaman önemli değil. Ve daha iyi bir kontrolün var. Bu yöntemi 1.7 sürümünden beri yapıyorum.
ADDISON74

3

Magento CE kurulumlarının çoğunda şansın olmaması (toplam 6). Farklı versiyonlar: 1.9.1, 1.9.0.1, 1.8.1.

Karşılık gelen 8788 yamasını doğru indirdim. Uygulanabilir olduğunda 1533'ü geri döndürdüğümden emin oldum.

Şüpheli olan aşağıdaki anahtar kayda değer çıktıları alıyorum:

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.

... app / code / core / Mage / Adminhtml / controllers / IndexController.php dosyasını kontrol edin. ...

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

Yukarıdaki ile aynı: lib / Unserialize / Reader / Arr.php lib / Unserialize / Reader / ArrValue.php

not: Sıralanmamış / Reader dizininde hiçbir şey yok. Tamamen boş. not: Curl.php indirici dir. Yeniden adlandırılmadı. Tamamlandı, ancak SWF dosyalarının kaldırıldığını görmüyorum. Uygulanan yamanın uygulandığı yamayı görmüyorum.

Anlamı yok.


Tamam .. hepsini anladım. Kesinlikle sırayla TÜM eski yamalar aracılığıyla çalışmanız gerekir. Uygulanmamış birkaç tane eski yamam vardı. Onları aşağı çektim ve çizgiyi yukarı çektikten sonra, işler başarılı bir şekilde yamaya başladı. Ancak, HERHANGİ bir yama için bir dosyada bir hunk hatası aldığımda, yamanın içine girip ne değiştirmeye çalıştığımı bulup magento kurulumumda manuel olarak yapmam gerektiğini öğrendim. Daha sonra bu "diff" çizgilerini yamadan kaldırın ve tekrar çalıştırın. Temel olarak, herhangi bir zamanda bir hunk hatası gördüğünüzde, yamaya gidiniz ve bundan ne yapmaya çalıştığını görün ve kendiniz yapın.
Zengin Yessian,

3

Bugün yaklaşık 10 web sitesi kurdum ve SUPEE-8788 yamasının başarısız olduğu her site SUPEE-6788 MISSING'e sahipti .

Bu (örnek) aşağıdaki hatayla sonuçlandı:

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

SUPEE-6788'i kurduktan sonra SUPEE-8788 doğru şekilde yamalı.


3

Eğer Hunk #1 failedxxx hatası alıyorsanız, yaptığım şey bu

Anladım Hunk #1 failed at 373. Hata !! çizgiden sonra

kontrol dosyası indiricisini / lib / Mage / HTTP / Müşteri / Curl.php

Böylece Curl.phpdosyayı kontrol ettim ve dosyayı daha önce değiştirdiğimi öğrendim (bir satır yorum yaptı). Orijinal dosyayı geri yükledim ve yamayı tekrar çalıştırdım. Sonra yama başarılı oldu. ;).

Sonra kontrol ettim:

/app/etc/applied.patches.list ve her şey iyi görünüyor

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.