Güvenlik Düzeltme Eki SUPEE-9767 - Muhtemel sorunlar?


108

Magento 1 için 16 APPSEC sorununu ele alan yeni bir güvenlik yaması çıktı: https://magento.com/security/patches/supee-9767

Güvenlik açıklarından yedisi CVSSv3 Ciddiyeti için 8.0 veya daha yüksek puan alıyor ve vahşi doğada sömürülüyorlar, bu yüzden bu kritik bir yama. Siteler SUPEE-9767'yi uygulayabilir veya CE 1.9.3.3 / EE 1.14.3.3 yeni sürümüne güncelleme yapabilir.

SUPEE-9767'yi uygularken dikkat edilmesi gereken genel sorunlar veya tuzaklar nelerdir?


GÜNCELLEME 2017-07-12:

Magento, ilk yamadaki sorunların çoğunu ele almak için SUPEE-9767 V2 ve CE 1.9.3.4'ü yayımladı . V1'i uyguladıysanız, geri dönüp V2'yi uygulamalısınız. Henüz yama yapmadıysanız, sadece V2'yi uygulayın; burada ortaya konan sorunların çoğu ilgili olmayacak.


"Güvenlik açıklarından yedisi CVSSv3 Ciddiyeti için 8.0 veya daha yüksek puan alıyor ve vahşi doğada sömürülüyorlar, bu yüzden bu kritik bir yama." Sadece kontrol etmek istedim, "saldırgan" bu istismarlardan herhangi birini yapmak için yöneticiye girmeli?
PaddyD

3
evet, istismar etmek için yönetici erişimine sahip olmalısınız ...
MagenX

Yama, ortak kaba kuvvet son noktasını durdurmuyor gibi gözüküyor, (yani / rss / order / new).
Ricky Odin Matthews,

1
Bunu .htaccess'deki RSS @RickyOdinMatthews için kullanıyorumRewriteRule ^/?(index.phprss|index.php/rss/catalog|index.php/rss/order|rss/catalog|rss/order).*$ /no-route [R=301,L,NC]
Richard

@RichardFeraro Nginx kullanıyorum, fakat zaten benzer bir çözüm kullanıyorum. Botların tipik olarak tarama yaptığını ve bu uç noktaları kaba kuvvetle zorladığını fark ettim.
Ricky Odin Matthews,

Yanıtlar:


107

İşte içine kazdıktan sonra yamaya genel bir bakış

TIME SAVER : Experius , dosyaları özel temalar, özel modüller veya elle yazmanız gerekebilecek yerel üzerine yazma konusunda bulmanıza yardımcı olan bir yama yardımcısı sunar, burada bulabilirsiniz: https://github.com/experius/Magento- 1-Experius-Patch-Yardımcısı # magento

Ödeme formu anahtarları

Diğer yayında da belirtildiği gibi, bu yama aşağıdaki formlara form anahtarları ekler:

Kargo sepetiniz:

app/design/frontend/<package>/<theme>/template/checkout/cart/shipping.phtml

Multishipping fatura ödeme formu:

app/design/frontend/<package>/<theme>/template/checkout/multishipping/billing.phtml

Multishipping nakliye ödeme formu:

app/design/frontend/<package>/<theme>/template/checkout/multishipping/shipping.phtml

Çoklu gönderim adresleri ödeme formu:

app/design/frontend/<package>/<theme>/template/checkout/multishipping/addresses.phtml

Fatura ödeme formu:

app/design/frontend/<package>/<theme>/template/checkout/onepage/billing.phtml

Kargo ödeme formu:

app/design/frontend/<package>/<theme>/template/checkout/onepage/shipping.phtml

Ödeme ödeme formu:

app/design/frontend/<package>/<theme>/template/checkout/onepage/payment.phtml

Nakliye yöntemi ödeme formu:

app/design/frontend/<package>/<theme>/template/checkout/onepage/shipping_method.phtml

Kalıcı Fatura ödeme formu:

app/design/frontend/<package>/<theme>/template/persistent/checkout/onepage/billing.phtml

Bunun üzerine, aşağıdaki JS dosyaları bu değişiklikle uyumlu olacak şekilde güncellendi:

  • js/varien/payment.js
  • skin/frontend/base/default/js/opcheckout.js

Ne yapalım:

Bu şablonların özel sürümleriyle kullanıyorsanız, bunlara aşağıdaki kodu ekleyerek güncellemeniz gerekir:

<?php echo $this->getBlockHtml('formkey') ?>

Üçüncü taraf bir ödeme modülü kullanıyorsanız, modüllerinin güncellenmiş bir sürümünü sağlayabilmeleri için onlarla temasa geçmeniz gerekir.

Ayrıca, önceden listelenen JS dosyalarının özel sürümleri varsa, onları da güncellemeniz gerekir.

SİZİN ZAMANINI KAYDET :

Fabian Schmengler, sizin için tüm bunları güncellemek için küçük bir senaryo yazdı, burada bulabilirsiniz:

https://gist.github.com/schmengler/c42acc607901a887ef86b4daa7a0445b

ÖNEMLİ NOT : Ödeme formkey doğrulama, arka uçta Sistem> Yapılandırma> Yönetici> Güvenlik> Ödeme Sırasında Form Anahtar Doğrulamasını Etkinleştir altındaki yeni bir yapılandırma alanıyla değiştirilebilir . BU VARSAYILAN TARAFINDAN KABUL EDİLMEMİŞDİR, bu yüzden bu güvenlik özelliğinden yararlanmasını sağlamalısınız !!! Etkin değilse, arka uçta bir bildirim alacağınızı unutmayın.

Image Upload geri arama

Resim galerisi denetleyicisi, doğrulama geri çağrısı eklemek için güncellendi.

Ne yapalım

Bu şekilde görünen kodla resim yükleme yapan özel bir modül kullanıyorsanız:

        $uploader = new Mage_Core_Model_File_Uploader('image');
        $uploader->setAllowedExtensions(array('jpg','jpeg','gif','png'));
        $uploader->addValidateCallback('catalog_product_image',
            Mage::helper('catalog/image'), 'validateUploadFile');
        $uploader->setAllowRenameFiles(true);
        $uploader->setFilesDispersion(true);

Aşağıdaki kodu ekleyerek bu kodu güncellemenizi şiddetle tavsiye ederim:

        $uploader->addValidateCallback(
            Mage_Core_Model_File_Validator_Image::NAME,
            Mage::getModel('core/file_validator_image'),
            'validate'
        );

symlinks

Bu yama, arka uçtaki şablon sembolik simgelerine izin vermenizi sağlayan sistem yapılandırma alanını kaldırır. Bu altında eskiden sembolik bağlantıyı izin ver> Sistem> Yapılandırma> Geliştirici> Şablon . Şimdi tüm Şablon bölümü gitti.

Bunun üzerine, bu alan şu anda varsayılan olarak app/etc/config.xml

Buradaki komik olan şey, yamadan önce bu yapılandırma alanını etkinleştirdiyseniz ancak alan gittiğinde onu devre dışı bırakmanız mümkün olmayacaksa, arka uçta bir bildirim alacağınızdır.

Bunu yapmanın tek yolu, aşağıdaki SQL sorgusunu çalıştırmaktır.

UPDATE core_config_data SET value = 0 WHERE path = "dev/template/allow_symlink";

açıklama

Öncelikle, bu Symlink değişikliğinin amacını anlamanıza yardımcı olacak bu iki gönderiyi kontrol etmenizi şiddetle tavsiye ederim:

Bu değişiklik gerçekten indirilebilir yönergeleri (görüntüler gibi) şablon yönergeleriyle çağırmakla ilgilidir.

Sembolik bağlantılarla ilgili sorun sadece yönetici erişiminde açıktır ve Magento görüntü yüklemeleriyle ilgili biraz daha koruma sağlar.

Lütfen, ayarın kendisine ek olarak bundan yararlanmanın bilinen bir yoluna karşı bir koruma olduğunu unutmayın.

Ne yapmalı : Eğer benim gibi, şablon sembollerle modman veya besteci kullanıyorsanız, bazı sorunlarla karşılaşacaksınız. Hala SQL sorgularıyla uğraşmaktan başka yapılabilecek en iyi şeyin ne olduğunu bulmaya çalışıyorum.

Bu konuyla ilgili ana yayın: SUPEE-9767, modman ve sembolik bağlantılar

Olası sorunların listesi

V2, bu orijinal gönderiden bu yana serbest bırakıldı. Yükseltmeyi unutma

Hatalar

'Confirm' kelimesi teyit edilmiş böcekler için kullanılır. Eğer orada değilse, bu bir hata olabileceği ancak henüz onaylanmadığı anlamına gelir.

İri Sorunlar Başarısız Oldu

Tüm bu sorunların basitçe, orijinal durumun değiştirilmediğinden, bunun böyle olmadığını kontrol etmek için olabileceğine dikkat edin:

  • Hunk Failed hatasını aldığınız dosyayı yedekleyin
  • Orijinal dosyayı Magento sürümünüzden indirin
  • Her iki dosyayı da karşılaştırın

Dosyalar farklıysa, yamayı orijinal dosyayla uygulamanız gerekir, ardından özel değişikliklerinizi aşağıdaki gibi temiz şekilde uygulayın:

  • özel bir tema klasöründeki özel şablon
  • local.xml
  • uygulama / kod / yerel dosya

Eğer dosyalar farklı değilse o zaman bu bir ya izin ya da yamada "hata" dır.


1
@Icon hayır. Çifte kontrol yapmak için cevabımın en üstünde referans aldığım aracı kullanın
Raphael, Digital Pianism'de

1
sadece "diğer sorunlar" listesine eklemek için: magento.stackexchange.com/questions/167616/… ' in en son sürümde de sabit olmadığı anlaşılıyor
Anton Boritskiy

1
@RaphaelatDigitalPianism: magento.stackexchange.com/q/177560/51361

1
Listeye başka bir ek: yama, varsayılan tema için multishipping'u kırıyor magento.stackexchange.com/questions/177681/…
Aad Mathijssen

1
'Filigran şeffaf olduğunda siyah arka plan alır' - bunun doğru olduğunu onaylayabilir. Bu, herhangi bir saydam png cms yüklediğinizde olur
pixiemedia

42

Sayı1: form_key ödeme sayfasında geçersiz

Magento form_key, formların çoğunu ekler .

Eğer öyleyse using default onepage and using custom theme, o zaman ** form_keyher adımda kasada sorunu almaya başlar **;

form anahtarı eklemelisiniz <?php echo $this->getBlockHtml('formkey') ?>

Aşağıdaki dosyalar çıkarsa, her bir ödeme adım dosyası oluşturmak için

  • app/design/frontend/[Your_Package]/[YOUR_THEME]/template/checkout/onepage/billing.phtml
  • app/design/frontend/[Your_Package]/[YOUR_THEME]/template/checkout/onepage/payment.phtml
  • app/design/frontend/[Your_Package]/[YOUR_THEME]/template/checkout/onepage/shipping.phtml

  • app/design/frontend/[Your_Package]/[YOUR_THEME]/template/checkout/onepage/shipping_method.phtml

Eğer şablon dosyaları temel temadan çağırıyorsa problem yaratmaz. Çünkü yama bu dosyaları otomatik olarak güncelleyecektir.

Ayrıca not edin: <?php echo $this->getBlockHtml('formkey') ?>daima form etiketi içinde olmalıdır

 <form action="" .....>
     <fieldset>
      .......
       <?php echo $this->getBlockHtml('formkey') ?>
     </fieldset>
 </form>

** Magento çoklu gönderim ödemesini kullanıyorsanız, adresinde yapılması gerekenler

dosyaların altında:

Sayı2: form_key, sepetin sayfasındaki Gönderi tahmini formuna ilişkin sayı:

Alışveriş sayfasındaki tahmin nakliye formuna form_key ekleyin

Sonra form anahtarı eklemelisiniz <?php echo $this->getBlockHtml('formkey') ?>

en app/design/frontend/{Your_Package}/{YOUR_THEME]/template/checkout/cart/shipping.phtml

Sorun 3: Magento web sitesinde ödeme opcheckout.js hatası

Varsayılan web sitesinde ödeme kullanıyorsanız ve opcheckout.js kontrol etmelisiniz.

if (elements[i].name=='payment[method]' || elements[i].name == 'form_key') {opcheckout.js adresinde mevcuttur.

Çıkmazsa yenisiyle değiştirin.

if (elements [i] .name == 'ödeme [yöntem]') {

ile

if (elements [i] .name == 'ödeme [yöntem]' || || [i] .name == 'form_key') {

Sayı1, sayı2, sayı3 için, Sayı @FabianSchmengler'in komut dosyası add-checkout-form-key.sh dosyasını kullanarak kolayca düzeltilebilir . Alıcı tema dosyalarınızdaki sorunu çözecektir

Sorun 4: Mage_Customer_Model_Session yeniden yazıldığında müşteri girişinden sonra geçersiz form anahtarı

Eğer Mage_Customer_Model_Sessionsınıf yeniden yazma veya üzerinden arayan

app/code/local/Mage/Customer/Model/Session.phpo zaman oturum için setCustomerAsLoggedIn()bir müşteri ayarladıktan sonra veya / veya oturumu belirleyen bir müşteri kullandıktan sonra form_key sorunu ile karşılaşabilirsiniz .

Bu durumda, eklemelisiniz

Mage :: getSingleton ( 'çekirdek / oturum') -> renewFormKey ();

En setCustomerAsLoggedIn () çağrısına önce

Mage::dispatchEvent('customer_login', array('customer'=>$customer));

  public function setCustomerAsLoggedIn($customer)
    {
        $this->setCustomer($customer);
        $this->renewSession();
        // add this  for patch -9767
        Mage::getSingleton('core/session')->renewFormKey();
       // end this for patch 9767
        Mage::dispatchEvent('customer_login', array('customer'=>$customer));
        return $this;
    }

Sayı 5: Çıkış yapıldıktan sonra Form_key sorunu

Oturumu kapattıktan sonra müşterinin oturumu kapattıktan sonra eğer Mage_Customer_Model_Sessionsınıf yeniden yazıyorsa veya aradıysa

app/code/local/Mage/Customer/Model/Session.php

Bu dava için aynı ihtiyaçta:

   protected function _logout()
    {
        $this->setId(null);
        $this->setCustomerGroupId(Mage_Customer_Model_Group::NOT_LOGGED_IN_ID);
        $this->getCookie()->delete($this->getSessionName());
// add this  for patch -9767
Mage::getSingleton('core/session')->renewFormKey();
        return $this;
    }

Öneri:

Recommendation1: supee-9767 konusunu sabit için , sen yama kullanabilirsiniz https://github.com/experius/Magento-1-Experius-Patch-Helper

Bu şu an için en iyi çözüm.

Not şiddetle alınması tavsiye ediyorum bunu yapmadan önce, dosya ve veritabanı yedekleme veya tam sistem yedeklemesi.


Öneri2: ONESTEP CHECKOUT'nuzda yama özelliğini kullanın

Güvenlik amaçlı bir düzeltme eki 9767 sürümü olduğunu biliyoruz, ONESTEP CHECKOUT kullanıyorsanız , onestep kontrol cihazınızın SAVE işlemine form_key doğrulaması eklemelisiniz .

Gönderim yöntemi ayrıntılarını kaydetmeyi varsayalım, başlangıçtaki satın alma işleminizde saveShippingmethod () işlevini kullanın. Bundan sonra eklemelisiniz

if ($this->isFormkeyValidationOnCheckoutEnabled() && !$this->_validateFormKey()) {
           return;
      }

Ayrıca, bir <?php echo $this->getBlockHtml('formkey') ?> sonraki ödeme phtml dosyalarına ilgili bölüme form anahtarı ekle

Bazı ilgili link

https://peterocallaghan.co.uk/2017/06/appsec-1281-dangerous-symlinks/


1
Ödeme sırasında form anahtarı için özel şablon dosyalarınızı bulmak için güzel ve hızlı bir astar; app / tasarım / frontend bul | grep -E "ödeme / web sayfası / (faturalandırma | ödeme | nakliye | nakliye_method) .phtml" | grep -v "temel / varsayılan" | grep -v "rwd / default"
Peter Jaap Blaakmeer

6
veya bunları biraz daha uzun bir astarla hemen güncelleyin: gist.github.com/schmengler/c42acc607901a887ef86b4daa7a0445b
Fabian Schmengler

Bu @FabianSchmengler büyüsü !!! :)
Amit Bera

@ FabianSchmengler harika, işe yaradı!
Peter Jaap Blaakmeer

1
@AmitBera FYI: Bazı ödeme eklentileri fatura / nakliye / etc göndermek için AJAX kullanır. Sadece birini yamalamak zorunda kaldım. Bunu yapmanın kolay yolu, <script> var var formKey = "<? Php echo Mage :: getSingleton ('çekirdek / oturum') -> getFormKey ();?>"; </script> temanın başına getirildi. Sonra form_key: formKey'i AJAX gönderimine parametre olarak ekleyebilirsiniz. Tabii ki, yeni parametrenin gönderildiğini onaylamak için formları test edin ve kontrolcünüzde yazdığınız gibi işlemek üzere düzenleyin.
Kalvin Klien

26

Yama dosyasının incelenmesindeki ilk geçişime dayanarak ...

  • Yeni bir ayar admin/security/validate_formkey_checkouteklendi. Açıldığında, ödeme formları bir form anahtarının varlığı için kontrol edilir. Şablon dosyaları temada geçersiz kılınırsa, orada güncellenmeleri gerekir. Bu ayar varsayılan olarak kapalı görünüyor
  • Simgeler varsayılan olarak (in app/etc/config.xml) varsayılan olarak izin verilmeyen görünüyor . Ayrıca, onlara izin verme yeteneği yönetici yapılandırmasından kaldırılmış görünüyor. Bununla birlikte, siteniz daha önce açıkça etkinleştirilmiş sembolik bağlantıları etkinleştirirse, ayar bu değişikliği geçersiz kılarak veritabanına kaydedilir.
  • Bu düzeltme ekini uygularken hem önbelleği hem de tam sayfa önbelleğini temizlemeniz gerekir. Tasarım istisnaları, kod çözmeyle uyumlu olmayan bir biçimde kaydedilir. Sayfa önbelleğini temizlemediğiniz takdirde "Kod çözme başarısız oldu: Sözdizimi hatası" gibi bir hata göreceksiniz.

1
Ayrıca bir hex editörü ile içeri girip veritabanına kendiniz de ekleyebilirsiniz, ancak çoğu insan için biraz fazla olabilir
kedi

1
Bazılarınız CDN kullanıyorsanız, cloudflare gibi, önbelleği temizlediğinizden emin olun. CDN'nin aktif olması ile ödemeye başlamayı denedim ve Ödemeler sayfasını geçmedi. Önbelleği temizlediğim ve Geliştirme modunu etkinleştirdiğim an, hepsi iyi gitti.
Icon

14

base/defaultBu düzeltme ekinden etkilenen dosyanın altında , bu dosyalar temanızdaysa, lütfen uygun değişiklikleri yapın

app/design/frontend/base/default/template/checkout/cart/shipping.phtml

app/design/frontend/base/default/template/checkout/multishipping/billing.phtml

app/design/frontend/base/default/template/checkout/multishipping/shipping.phtml

app/design/frontend/base/default/template/checkout/onepage/billing.phtml

app/design/frontend/base/default/template/checkout/onepage/payment.phtml

app/design/frontend/base/default/template/checkout/onepage/shipping.phtml

app/design/frontend/base/default/template/checkout/onepage/shipping_method.phtml

app/design/frontend/base/default/template/persistent/checkout/onepage/billing.phtml

Yukarıdaki tüm phtmldosyalarda form tuş satırı eklenmiştir, bu yüzden lütfen bu satırı ilgili phtml dosyanıza ekleyin.

 <?php echo $this->getBlockHtml('formkey') ?>

Yukarıdaki sayı için @ fabian, tema dosyanızda bile form anahtarı ekleyecek bir script yarattı

https://gist.github.com/schmengler/c42acc607901a887ef86b4daa7a0445b

Güvenlik düzeltme ekini uyguladıktan sonra form anahtarı için hata alırsanız bu düzeltme ekini uygulayabilirsiniz;

  sh filename.sh

ve dosyada bir base/defaultdeğişiklikJs

  skin/frontend/base/default/js/opcheckout.js

öyleyse bu jsdosya temanızdan yükleniyorsa, aşağıdaki adımları uygulayın

darbe hattını kaldırmak

 if (elements[i].name=='payment[method]') {

ve yukarıdaki yerine satırın altına ekleyin

 if (elements[i].name=='payment[method]' || elements[i].name == 'form_key') {

DÜZENLE

Ve aşağıdaki dosyaları geçersiz kılan herhangi bir ödeme uzantısı kullanıyorsanız, o zaman ödeme uzantısının phtml dosyasına form anahtar satırı ekleyin.

EDIT2 - Sorunlar

1) saveBillingAction () ' da hata veya form anahtarını boş alma Veya Form Anahtarı sorunu: Yama 9767 geçersiz Form Anahtarını alma

2) Hunk # 1 225'te başarısız oldu. 1 hunk'tan 1'i BAŞARISIZ - kaydetme, app / design / frontend / enterprise / default / template / persistent / checkout / onepage / billing.phtml dosyasına reddediyor: SUPEE-9767 - Hunk # 1 225 de başarısız oldu. 1 grubun 1 tanesi BAŞARISIZ

3) reddedilenleri app / code / core / Enterprise / PageCache / Model / Observer.php.rej dosyasına kaydetme: SUPEE-9767 HATA: Yama başarıyla uygulanamıyor / geri alınamıyor

4) SUPEE-9767, modman ve sembolik bağlantılar: SUPEE-9767, modman ve sembolik bağlantılar

5) app / design / frontend / rwd / default / layout / page.xml 36 no'lu Hunk # 1 başarısız oldu. 2 # 2 54 başarısız oldu . 2 topluluğun 2'si BAŞARISIZ: SUPEE-9767 Hatası

6) 1'in 1'i BAŞLADI - kaydetme, app / code / core / Mage / Satış / Model / Alıntı / Item.php dosyasına kaydetmeyi reddetti: Magento 1.9.2.2 SUPEE-9767 Patch ERROR

7) onestep çıkış hatası (yine bu, form anahtarı meselesidir): SUPEE-9767 Magento CE 1.9.3.3 Onestep Checkout, Form Key Validasyon Etkin iken çalışmıyor

8) bir adım ödeme müşteri kayıt sorunu: SUPEE-9767 Düzeltme Eki / CE 1.9.3.3 - Bir Sayfa Ödeme - Müşteri Kaydı sorunu

9) app / code / core / Mage / Core / Model / Dosya / Validator / Image.php: Magento SUPEE 9697 1.9.2.2 Image.php’de başarısız oluyor


1
Düzeltme ekinin 2. sürümü yakında kullanıma hazır olmalıdır. Hatalar düzeltilmelidir.
Icon

1
@icon v2'yi bekliyor
Murtuza Zabuawala

9

Symlinks var unutmayın hep EVET / 'NO' NO yapılandırma değerleri varsayılan yeni Magento tesisat yönetici varsayılan olarak devre dışı bırakılmıştır. Güncelleme şimdi açıkça config.xml içindeki sembolik bağlantıları devre dışı bırakır ve ek bir önlem olarak, şablon bölümünü yapılandırma seçeneğini içeren admin-> geliştiriciden de kaldırır.

Bu, geçerli sembol bağlantı ayarlarınızı etkilemez, 1.9.3.2'den önceki sembolik bağlantıları el ile etkinleştirdiyseniz, ayarları yönetici olarak daha fazla göremeseniz de etkin kalırlar.

Magento 1.x modüllerini yönetmek için modman kullanan kullanıcılar, modman modüllerini devre dışı bırakacağı için sembolik bağlantıları devre dışı bırakmadıklarından emin olmalıdır .

Sorumlu yöneticiler , app / code / core / Mage / Core / etc / system.xml dosyasındaki şablon bölümündeki değişiklik değişikliklerini arayarak ve bölümü 600. civarı civarındaki system.xml dosyasına ekleyerek, yine link yönetim yönetici bölümünü etkinleştirebilir. çift ​​çek sembolik çizgiler hala etkin

n98-magerun.phar config: dökümü | grep symlink

Özel / genişletilmiş temalarınızı etkileyebilecek varsayılan temada değişikliklerin belirlenmesine yardımcı olmak için magento1933 ve magento1932 için fark dosyası.

fark -r magento1933 magento1932> https://pastebin.com/ADzMBLhr


Symlinks seçeneğini neden kaldırdılar ?, şimdi halka açık (yönetici kullanıcısı dışında) bir istismar var mı, yoksa paylaşılan bir ortamda olması risk mi?
PaddyD


Symlinks bir nedenden dolayı devre dışı bırakılmıştır. Sembolik bağlantı yerine kopyalanmasını öneririm: magento.stackexchange.com/a/177149/54863
Barryvdh

9

Sorun: php7 kullanımı bazen aşağıdaki hatayı atar:

Decoding failed: Syntax error

#0 /______/app/code/core/Enterprise/PageCache/Model/Observer.php(179): Zend_Json::decode('')
#1 /______/app/code/core/Enterprise/PageCache/Model/Observer.php(215): Enterprise_PageCache_Model_Observer->_loadDesignExceptions()
#2 /______/app/code/core/Enterprise/PageCache/Model/Observer.php(125): Enterprise_PageCache_Model_Observer->_saveDesignException()
#3 /______/app/code/core/Mage/Core/Model/App.php(1358): Enterprise_PageCache_Model_Observer->cacheResponse(Object(Varien_Event_Observer))
#4 /______/app/code/core/Mage/Core/Model/App.php(1337): Mage_Core_Model_App->_callObserverMethod(Object({custom extensio}_Model_Rewrite_PageCache_Observer), 'cacheResponse', Object(Varien_Event_Observer))
#5 /______/app/Mage.php(456): Mage_Core_Model_App->dispatchEvent('controller_fron...', Array)
#6 /______/app/code/core/Mage/Core/Controller/Varien/Front.php(182): Mage::dispatchEvent('controller_fron...', Array)
#7 /______/app/code/core/Mage/Core/Model/App.php(365): Mage_Core_Controller_Varien_Front->dispatch()
#8 /______/app/Mage.php(691): Mage_Core_Model_App->run(Array)
#9 /______/index.php(105): Mage::run('brandfield_nl', 'store')
#10 {main}

Zend versiyonunun onunla bir şeyler yapması gerektiğinden oldukça emin. Hızlı bir düzeltme budur, ancak kesin olarak doğru değil:

-> app / code / core / Enterprise / PageCache / Model / Observer.php: 244 ile değiştir:

    if ($cachedSslOffloaderHeader !== false) {
        $cachedSslOffloaderHeader = trim(@Zend_Json::decode($cachedSslOffloaderHeader));
    }

-> ve app / code / core / Enterprise / PageCache / Model / Observer.php: 177 ile:

    if ($exceptions !== false) {
        $exceptions = Zend_Json::decode($exceptions);
    }

Elbette bunu yeniden yazmak için bir addon oluşturun. Ama burada yapılacak daha iyi bir şey olduğuna eminim.

GÜNCELLEME (Daha iyi çözüm)

-> Git: lib / Zend / Json.php ve 76 satırından sonra şunu ekleyin:

    if ((float)phpversion() >= 7.0
        && empty($encodedValue)
    ) {
        return null;
    }

Geçersiz kılmak için uzantınızı oluşturun ve çekirdek dosyayı düzenlemeyin.


Önbellek tamamen temizlendi. Bu aynı sorun değil.
folektoras133

2
Bu aynı soruna ulaştık - app / code / core / Enterprise / PageCache / Model / Observer.php uygulamasının geri alınması sorunu çözdü, ancak açıkçası bu doğru bir düzeltme değil, sadece önleme değil a:5:{i:0;s:29:"Decoding failed: Syntax error";i:1;s:1376:"#0 app/code/core/Enterprise/PageCache/Model/Observer.php(177): Zend_Json::decode('a:0:{}')
Judder

9

Sorun: Dinamik kod veya css kasada form anahtarı giriş öğesini devre dışı bırakır

Nerede gördüğüm bir konudur dinamik kod bir sayfa çıkış sürecinde (paypal artı) üzerine yazar Fieldset silme veya (css ile) devre dışı bırakarak gizli form_key eleman - bir adım ödeme yöntemi formu html öğesi.

Düzeltme, formkey öğesinin herhangi bir dinamik kod veya css tarafından devre dışı bırakılmamasını sağlamaktır . Formkey kodunu alan kümesi öğesinin dışına taşımak da yardımcı olabilir.

<form>
    <?php echo $this->getBlockHtml('formkey') ?>
    <fieldset>
        <?php echo $this->getChildHtml('methods') ?>
    </fieldset>
</form>

Tarayıcınızdaki ajax ağ isteklerini kontrol ederek bir sayfa denetleyicisine gönderilip gönderilmediğini ve bir sayfa denetleyicisine gönderilip gönderilmediğini kolayca onaylayabilirsiniz; anahtar yok, ancak Magento kaynak kodu, form anahtarı öğesini etkileyen harici kodu kontrol etmek için yamalı (css veya dinamik istemci tarafı değişiklikleri) eklenmiş.

görüntü tanımını buraya girin


2
Bu düzeltme biraz EE ile benim için işe yaramadı. Dosyanın app/design/frontend/[package]/[theme]/template/giftcardaccount/onepage/payment/scripts.phtml da güncellenmesi gerektiğini gördüm : 35-38 Satırları || elements[i].name == 'form_key', form_key form alanını devre dışı bırakmak için diğer seçicilerin yanında olacak şekilde güncellenmelidir .
Greg Nickoloff

Teşekkürler g-man1066! Tam olarak yaşadığım problem buydu.
grafikchaos


8

SORUN: Müşteri Kaydı, genel Magento 5 aşamalı ödeme yöntemini kullanırken başarısız olur.

Bu sorun yalnızca, anahtar kimlik doğrulamasını KABUL EDİYORUZDA ortaya çıkar. Kullanılan sürüm: 1.7.0.2, ancak birinin 1.9.3 sürümünde de aynı sorunun olduğunu bildiren birine benziyor. SUPEE-9767 Düzeltme Eki / CE 1.9.3.3 - Bir Sayfa Ödeme - Müşteri Kaydı sorunu

Ödeme bölümüne geçtiğinizde 2 seçenek sunulur: BİR KONUK VEYA KAYIT OLARAK KONTROL ET "Kayıt ol" a tıkladığınızda ve parola ile birlikte formu doldurduktan sonra, tüm adımları takip edin ve siparişi tamamlayın. Sipariş verilir, ancak müşteri magento'ya asla kaydolmaz. Konuk sipariş yerleştirmiş gibi görünüyor.

Geri döndüğümde ve Devre Dışı bıraktığımda , anahtar kimlik doğrulaması yaptığımda ve müşteri olarak kayıt olurken sipariş vermeyi denediğimde, sorunsuz bir şekilde yerleştirildi ve müşteri arka uçta kaydedildi.


1
İşte bu konuda daha ayrıntılı bir yazı magento.stackexchange.com/questions/177035/…
Raphael, Digital

8

GÜNCELLEME 13/07/2017 [SAYI SABİTTİR]

Magento ekibi SUPEE-9767 V2'yi yamanın bu versiyonunda piyasaya sürdü .

Tüm değişiklikleri bu başlıkta tartışılan dosyaya geri almalısınız. Sonra uygulanan V1 yamasını geri alın ve son olarak yeni V2 sürümünü uygulayın.


PRE - SUPEE-9767 V2

Lütfen aşağıda tartışılan kodu kullanmayın, bunun yerine yamanın tartışıldığı V2'yi uygulayın, tartışılan sorun bu sürümde zaten düzeltildi

Eğer birileri şeffaf png'lerle ilgili problem yaşarsa, yönetici panelinden yüklendiğinde arka plan siyahlaşır. (Ürünlerde), aşağıdakilerde sunulan Image Upload geri arama işlemiyle ilgilidir:

app/code/core/Mage/Adminhtml/controllers/Catalog/Product/GalleryController.php

Şu anda tam olarak bu davranışa neyin sebep olduğunu bilmiyorum ama geri aramayı kaldırdığımda garip davranışların ortadan kalktığını doğrulayabiliyorum.

görüntü tanımını buraya girin

GÜNCELLEME

Tamam, SUPEE-9767'den de güncellenen işlevi buldum, bu aslında png'deki şeffaflığı kırıyor, orijinal görüntünün bir kopyası saydamlık olmadan yaratılıyor.

+++ app/code/core/Mage/Core/Model/File/Validator/Image.php
@@ -87,10 +87,33 @@ public function setAllowedImageTypes(array $imageFileExtensions = array())
      */
     public function validate($filePath)
     {
-        $fileInfo = getimagesize($filePath);
-        if (is_array($fileInfo) and isset($fileInfo[2])) {
-            if ($this->isImageType($fileInfo[2])) {
-                return null;
+        list($imageWidth, $imageHeight, $fileType) = getimagesize($filePath);
+        if ($fileType) {
+            if ($this->isImageType($fileType)) {
+                //replace tmp image with re-sampled copy to exclude images with malicious data
+                $image = imagecreatefromstring(file_get_contents($filePath));
+                if ($image !== false) {
+                    $img = imagecreatetruecolor($imageWidth, $imageHeight);
+                    imagecopyresampled($img, $image, 0, 0, 0, 0, $imageWidth, $imageHeight, $imageWidth, $imageHeight);
+                    switch ($fileType) {
+                        case IMAGETYPE_GIF:
+                            imagegif($img, $filePath);
+                            break;
+                        case IMAGETYPE_JPEG:
+                            imagejpeg($img, $filePath, 100);
+                            break;
+                        case IMAGETYPE_PNG:
+                            imagepng($img, $filePath);
+                            break;
+                        default:
+                            return;
+                    }
+                    imagedestroy($img);
+                    imagedestroy($image);
+                    return null;
+                } else {
+                    throw Mage::exception('Mage_Core', Mage::helper('core')->__('Invalid image.'));
+                }
             }
         }
         throw Mage::exception('Mage_Core', Mage::helper('core')->__('Invalid MIME type.'));

GÜNCELLEME

Png şeffaflığını korumak için işlevin güncellenmiş hali

  imagealphablending($img, false);
  imagesavealpha($img, true);

bu iki satırın yamaya eklenmesi gerekir. İçindeki işlevi güncelleapp/code/core/Mage/Core/Model/File/Validator/Image.php

/**
 * Validation callback for checking is file is image
 *
 * @param  string $filePath Path to temporary uploaded file
 * @return null
 * @throws Mage_Core_Exception
 */
public function validate($filePath)
{
    list($imageWidth, $imageHeight, $fileType) = getimagesize($filePath);
    if ($fileType) {
        if ($this->isImageType($fileType)) {
            //replace tmp image with re-sampled copy to exclude images with malicious data
            $image = imagecreatefromstring(file_get_contents($filePath));
            if ($image !== false) {
                $img = imagecreatetruecolor($imageWidth, $imageHeight);
                imagealphablending($img, false);
                imagesavealpha($img, true);  
                imagecopyresampled($img, $image, 0, 0, 0, 0, $imageWidth, $imageHeight, $imageWidth, $imageHeight);
                switch ($fileType) {
                    case IMAGETYPE_GIF:
                        imagegif($img, $filePath);
                        break;
                    case IMAGETYPE_JPEG:
                        imagejpeg($img, $filePath, 100);
                        break;
                    case IMAGETYPE_PNG:
                        imagepng($img, $filePath);
                        break;
                    default:
                        return;
                }
                imagedestroy($img);
                imagedestroy($image);
                return null;
            } else {
                throw Mage::exception('Mage_Core', Mage::helper('core')->__('Invalid image.'));
            }
        }
    }
    throw Mage::exception('Mage_Core', Mage::helper('core')->__('Invalid MIME type.'));
}

GÜNCELLEME 23/06/17

Fonksiyonun bu güncellenmiş hali PNG ve GIF şeffaflığını düzeltir.

    /**
 * Validation callback for checking is file is image
 *
 * @param  string $filePath Path to temporary uploaded file
 * @return null
 * @throws Mage_Core_Exception
 */
public function validate($filePath)
{
    list($imageWidth, $imageHeight, $fileType) = getimagesize($filePath);
    if ($fileType) {
        if ($this->isImageType($fileType)) {
            //replace tmp image with re-sampled copy to exclude images with malicious data
            $image = imagecreatefromstring(file_get_contents($filePath));
            if ($image !== false) {
                $img = imagecreatetruecolor($imageWidth, $imageHeight);
                switch ($fileType) {
                    case IMAGETYPE_GIF:
                        imagecolortransparent($img, imagecolorallocatealpha($img, 0, 0, 0, 127));
                        imagealphablending($img, false);
                        imagesavealpha($img, true);
                        imagecopyresampled($img, $image, 0, 0, 0, 0, $imageWidth, $imageHeight, $imageWidth, $imageHeight);
                        imagegif($img, $filePath);
                        break;
                    case IMAGETYPE_JPEG:
                        imagecopyresampled($img, $image, 0, 0, 0, 0, $imageWidth, $imageHeight, $imageWidth, $imageHeight);
                        imagejpeg($img, $filePath, 100);
                        break;
                    case IMAGETYPE_PNG:
                        imagealphablending($img, false);
                        imagesavealpha($img, true);  
                        imagecopyresampled($img, $image, 0, 0, 0, 0, $imageWidth, $imageHeight, $imageWidth, $imageHeight);
                        imagepng($img, $filePath);
                        break;
                    default:
                        return;
                }
                imagedestroy($img);
                imagedestroy($image);
                return null;
            } else {
                throw Mage::exception('Mage_Core', Mage::helper('core')->__('Invalid image.'));
            }
        }
    }
    throw Mage::exception('Mage_Core', Mage::helper('core')->__('Invalid MIME type.'));
}

1
Bu bir Magento 1.7 kurulumunda sorunumu çözdü. Teşekkürler!
Tjitse

Hiç sorun değil Tjitse, Magento ekibinin yamayı düzeltmemesi durumunda bu değişikliği not edin; bir sonraki yamayı yaparken bu işlemi geri almanız gerekir. Bu sorunu bugcrowd.com adresindeki topluluğa gönderdim, yakında düzeltme eki getireceklerini umuyorum.
Daniel Yovchev

pngs için düzeltir, ancak saydam gif dosyaları için düzeltilmez. gif dosyaları imagecolortransparent kullanarak biraz farklı işlemlere ihtiyaç duyar
17:04

Bunu işaretlediğiniz için teşekkürler, gif şeffaflığını da düzelten güncellenmiş fonksiyona bakın.
Daniel Yovchev

7

Sorun: Sembolik bağlantı bildiriminin yöneticilere gösterilmemesine izin ver

Sembolik bağlantı bildirimi, yönetim bildirimi alanında gösterilmediği için gösterilmeyecektir. <block type="core/text_list" name="notifications" as="notifications">

Aşağıdaki hem CE hem de EE için yama:

--- app/design/adminhtml/default/default/layout/main.xml
+++ app/design/adminhtml/default/default/layout/main.xml
@@ -119,7 +119,8 @@ Default layout, loads most of the pages
<block type="adminhtml/cache_notifications" name="cache_notifications" template="system/cache/notifications.phtml"></block>
<block type="adminhtml/notification_survey" name="notification_survey" template="notification/survey.phtml"/>
<block type="adminhtml/notification_security" name="notification_security" as="notification_security" template="notification/security.phtml"></block>
-            </block>
+                <block type="adminhtml/checkout_formkey" name="checkout_formkey" as="checkout_formkey" template="notification/formkey.phtml"/></block>
+                <block type="adminhtml/notification_symlink" name="notification_symlink" template="notification/symlink.phtml"/>
<block type="adminhtml/widget_breadcrumbs" name="breadcrumbs" as="breadcrumbs"></block>
<!--<update handle="formkey"/> this won't work, see the try/catch and a jammed exception in Mage_Core_Model_Layout::createBlock() -->

Sorun (kendi kendine sonlanan) </block>sonundadır checkout_formkeyve dolayısıyla ebeveyni kapatır notifications. Bu, notification_symlinkiçine dahil core/text_listedilmemesine ve oluşturulmamasına neden olur .


Bu gerçekten bir sorun değil, bildirim kaldırıldı çünkü sembolik bağlantılar açıkça devre dışı bırakıldı ve sembolik bağlantı yapılandırma bölümü kaldırıldı. V1933'de yönetici içindeki sembolik bağlantı değerini manüel olarak değiştirmek mümkün değildir, bu nedenle bir yönetici bildirimi göstermek oldukça anlamsızdır. Sorun, 1933'deki kurulumlar için olacak; yani modman için sembolik bağlantı gerektiren kullanıcıların artık manuel olarak etkinleştirememesi. Birisi Magento'nun yeni bir 1.x kurulumunu beklemeyeceği sonucuna
varılabilir

Katılıyorum, bu düzeltme eki, önceden ayarlanmışsa, yapılandırma ayarını açıkça devre dışı bırakmıyor; yalnızca önceden ayarlanmamışsa devre dışı bırakır. Bu nedenle, bir örnek, bu yamadan önce DB / local.xml dosyasında evet olarak ayarlanmış bir dev / template / allow_symlink içeriyorsa ve yamayı uygularlarsa, potansiyel olarak savunmasız oldukları için sembolik bağlantılara izin verildiği uyarısını almaları gerekir.
mwylde

Amacını anlıyorum ve sen haklısın. Fakat normal bir kullanıcı için o zaman ne yaparlardı - config seçeneği kaldırıldığı için onu adminden manuel olarak devre dışı bırakmak imkansızdır. Bu bir parça 22 durumun bir parçası ...
paj

7

#Patchday için küçük ipucu; kurulumunuzda 1.9.3.3 kopyaladıktan sonra git diff -w --stat | grep -v " 2 +" | grep -v " 0", dosyalarda daha büyük değişiklikleri hızlı bir şekilde görmek için çalıştırın .


7

Sorun: EE gönderim şablonu yamalı değil

Bir EE 1.13.1.0 kurulumu kurdum ve kurumsal gönderim şablonu ( app/design/frontend/enterprise/default/template/checkout/onepage/shipping.phtml) form anahtarını eklememişti, ancak faturalandırma ve ödeme şablonları yaptı.

app/design/frontend/base/default/template/checkout/onepage/shipping.phtml oldu yamalı.


Ayrıca form_key eklemek için (EE 1.14.2 için) /app/design/frontend/enterprise/default/template... .../checkout/cart/coupon.phtml,.../giftcardaccount/cart/block.phtml .../giftcardaccount/cart/check.phtml
Greg Nickoloff

4

SUPEE-9767 ile yamalanan Magento EE versiyonlarında bir sorun var (bu yüzden 1.14.3.3'e yükseltme yapılmamalı). Bu sayfadaki form anahtarı önbelleğe alınacak. Bu yüzden önbelleğimi temizledikten sonra bir ürün sayfasına gidip sayfanın tamamen önbelleğe alındığından emin olduğumda (birkaç kez yenile), bu ürünü sepetime ekleyebilmeliyim.

Şimdi, farklı bir tarayıcı açtığımda (veya gizli modda), aynı sayfayı açıp ürünü tekrar sepete eklemeyi deneyin. Form anahtarı nedeniyle ürün sepetinize eklenmeyecek. Şimdi önbelleği yeniden temizlediğinizde, ürün tekrar sepete eklenebilir.

Jasper Zeinstra'ya teşekkürler


3

Magento Composer Intaller kullanan geliştiriciler için, dağıtım stratejisini Symlink yerine Kopya olarak değiştirebilirsiniz. Modül dosyalarını .gitignore'a eklemek üzere yapılandırabilirsiniz, böylece havuzunuz temiz kalacaktır.

https://github.com/Cotya/magento-composer-installer/blob/master/doc/Deploy.md#deploy-per-copy-instead-of-symlink

{ "extra":{ "magento-root-dir": "htdocs/", "magento-deploystrategy": "copy", "auto-append-gitignore": true } }


Kopyanın "magento-force": true,önemli olduğunu
öğrendik


2

Sorun: Patch vanilya üzerinde çalışıyordu Magento 1.7.0.0 [değiştirildi]

Yama betiğimizin testi sırasında Magento 1.7.0.0 yaması için bir sorun keşfettik. Biri hala kullanıyor mu bilmiyorum, ama yine de SUPEE-9767'de bir sorun. Vanilya kullandık ve ilk önce tüm yamaları kurduk.

Yama dosyası kullandı: PATCH_SUPEE-9767_CE_1.7.0.2_v1-2017-05-25-09-31-32.sh yama dosyası yok Magento 1.7.0.1 ve 1.7.0.2 için çalışmak

Sorunların özeti:

ERROR: Patch can't be applied/reverted successfully.
...
can't find file to patch at input line 377
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git app/code/core/Mage/Core/Model/File/Validator/Image.php app/code/core/Mage/Core/Model/File/Validator/Image.php
|index 7f7b9d0..cbbcbb1 100644
|--- app/code/core/Mage/Core/Model/File/Validator/Image.php
|+++ app/code/core/Mage/Core/Model/File/Validator/Image.php
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
2 out of 2 hunks ignored
...
checking file app/code/core/Mage/Sales/Model/Quote/Item.php
Hunk #1 FAILED at 502.
1 out of 1 hunk FAILED
...

Kayıt için, bu 1.7.0.0'daki düzeltme ekini denedik:

$ grep SUPEE app/etc/applied.patches.list
2017-06-01 12:59:49 UTC | SUPEE-2677 | EE_1.13.0.2 | v2 | d20e6763cd0df70c4ac6e418c9775a1ff0f2618f | Tue Jan 14 17:49:25 2014 +0200 | v1.13.0.2..HEAD
2017-06-01 12:59:49 UTC | SUPEE-2629 | EE_1.12.0.0 | v1 | 5de775cf535e137b0b099d8066bd5b3a81f7ec4c | Wed Dec 11 16:50:40 2013 +0200 | v1.12.0.0..HEAD
-e 2017-06-01 12:59:49 UTC | SUPEE-1049 | EE-1.12.0.2 | v1 | 6d06f286f461562fa6d6573349f1491f7bf89859 | Wed Feb 13 17:46:13 2013 -0800 | v1.12.0.2..HEAD
2017-06-01 12:59:49 UTC | SUPEE-1868-1-12-0-2 | EE_1.12.0.2 | v1 | 2148b1b6be28a9bad0bec9a4aecc63ed318dd201 | Fri Jul 26 13:20:27 2013 -0700 | v1.12.0.2..HEAD
2017-06-01 12:59:49 UTC | SUPEE-4334-v1.11.1.0 | EE_1.11.1.0 | v1 | 40f5a2e4db9ca53dc6a8e62eb0c728fd63b1157e | Wed Sep 10 10:42:31 2014 -0700 | ef80f7bff749c941b4d1736cc2b502888e7540c9
2017-06-01 12:59:49 UTC | SUPEE-5345 | EE_1.12.0.2 | v1 | 2d36f61cf684ed26286b6d10307fcb99dd47ff02 | Thu Feb 5 19:39:01 2015 +0200 | v1.12.0.2..HEAD
2017-06-01 12:59:49 UTC | SUPEE-5994 | CE_1.6.0.0 | v1 | _ | n/a | SUPEE-5994_CE_1.6.0.0_v1.patch
2017-06-01 12:59:49 UTC | SUPEE-6237 | EE_1.14.2.0 | v1 | 8b216c42e2e5d2cb5d8e500fcb6690abede9df52 | Fri Jun 12 13:39:59 2015 +0300 | v1.14.2.0..HEAD
2017-06-01 12:59:49 UTC | SUPEE-6285 | CE_1.7.0.2 | v1 | 84749c91e14543e1f96af30e86efdf29f4562c98 | Tue Jun 23 09:48:07 2015 +0300 | c6e6cee8eb..84749c91e1
2017-06-01 12:59:49 UTC | SUPEE-6482 | CE_1.8.0.0 | v1 |  | Tue Jul 14 14:17:04 2015 +0300 |
2017-06-01 12:59:49 UTC | SUPEE-6788 | CE_1.7.0.1 | v1 | 04d237d56b116989e46839c41691585d927f99db | Fri Oct 23 13:52:50 2015 +0300 | f69136a
2017-06-01 12:59:49 UTC | SUPEE-7616 | CE_1.7.0.2-CE_1.4.2.0 | v1 | a16c51e3679c3f19de6c3207b7a42daa7f9227fc | Fri Dec 18 12:42:03 2015 +0200 | 3617437b6da11be812fcca85f4e6ecbd8b8dc94c..a16c51e3679c3f19de6c3207b7a42daa7f9227fc
2017-06-01 12:59:50 UTC | SUPEE-8788 | CE_1.7.0.0 | v2 | 6b5ef4fc5b09af74d0fd401440948d0a54dd203d | Fri Oct 14 19:27:22 2016 +0300 | 84fa3dd598466fa5c482965a3f8e5395af33bf9d
2017-06-01 12:59:50 UTC | SUPEE-8967 | EE_1.13.1.0 | v1 | 1fa53e9533f6f3a16f24d9b64dabef0ab7f965d7 | Thu Aug 18 16:32:48 2016 +0300 | 97d160644..1fa53e9533
2017-06-01 12:59:50 UTC | SUPEE-9652 | EE_1.14.3.1 | v1 | 4038f0785d828794083f53f10c01aaa6af403523 | Tue Jan 24 15:03:12 2017 +0200 | 9586981e6ca8b255014b242d50b68b88525b0754..4038f0785d828794083f53f10c01aaa6af403523

4
Bu dosyayı eksikse, büyük olasılıkla SUPEE-7405 güvenlik düzeltme ekini uygulamamışsınızdır.
Ryan Hoerr

@RyanHoerr haklısın, SUPEE-7405 atlandı, çünkü resmi dosya PATCH_SUPEE-7405_CE_1.7.0.2_v1-2016-01-20-04-58-44.sh1.7.0.0 için çalışmıyor. Dosyanın sabit bir versiyonunu oluşturdum. Birisinin ihtiyacı olursa, bana bir mesaj gönder.
Jeroen Vermeulen - MageHost

2

Garip bir davranış yüzünden bu yamayı geri almam gerekiyordu. Hangi nedenle olursa olsun, belirli kullanıcılar sepetlerine belirli öğeleri ekleyemedi.

Eski müşterilerin o teklife verilen fiyat teklifi ile çarpışmasıyla ilgili olduğunu düşünüyorum. Sadece 1D10T olmadığından emin olmak için kullanıcı olarak giriş yaparak bu sorunu doğruladım.

Geçtiğimiz cuma bu yamayı aldığımdan beri bir sorun oldu. 1.14.2.4 kullanıyoruz . Yoğun bir şekilde değiştirildi, bu nedenle diğer kullanıcılar için iyi çalışabilir. Sadece bir uyarı!


Bu doğru, yama Magento'nun EE sürümü için sepete ekleme işlemini keser. Temel olarak, sorun kendi oturumu varken form_key oluşturma mantığı bir sürümüne sahip PageCache modülü nedeniyle oluşur. FPC, istenen sayfanın önbelleğe alınmış bir sürümüne sahipken, ancak minicart'ı yeniden oluşturması gerektiğinde, form_key'i yeniden düzenleyen oturum aynı zamanda kendi form_ anahtarını oluşturan FPC kaydetme adı verilir. Bu noktada, form_key'nin oturum değeri, müşteri çerezinde (FPC işlemcisinde kullanılan) depolanandan farklıdır, bu nedenle alışveriş sepetine ekle kontrolünde geçersiz bir anahtar elde edersiniz.
Stjepan

Ben de bu sorunla karşılaşıyorum. Bir düzeltme bulursam size bildiririm.
cmtickle

Bu sorunu çözerek
cmtickle

Bunun SUPEE-9767 v2'de çözülüp çözülmediğini bilen var mı?
Bir

2

Sorun: 1.6.0.0'da Sonsuz Yönlendirme Döngüsü

Hızlı düzeltme

/ App / code / core / Mage / Core / Controller / Varien / Front.php dosyasındaki _checkBaseUrl ($ request) yönteminde korunan işlev içindeki aşağıdaki satırları bulun

 if (isset($uri['scheme']) && $uri['scheme'] != $request->getScheme()
        || isset($uri['host']) && $uri['host'] != $request->getHttpHost()
        || isset($uri['path']) && strpos($requestUri, $uri['path']) === false
 ) {  

Bu satırları değiştir

 if (isset($uri['host']) && $uri['host'] != $request->getHttpHost()
            || isset($uri['path']) && strpos($requestUri, $uri['path']) === false
 ) { 

Bundan sonra dosyayı kaydedin (REPO'nuza kaydedin), önbelleği temizleyin (var / cache klasöründeki her şeyi kaldırın) ve mağaza önünü yeniden yükleyin. SUPEE 9767 Düzeltme Ekini uyguladıktan sonra, site yüklerini artık 302 yönlendirme sorunu olmadan bulmalısınız.

Ana neden

SCHEME değerindeki gerçek İstek ile yönlendirmeden sonraki URI arasındaki fark. Örn: Gerçek istek şema HTTP'sini döndürür, ancak URI'daki şema HTTPS olabilir.

Muhtemel Temel Sebepler

  1. Tüm http isteklerini https'ye yönlendirmek için büyük olasılıkla .htaccess dosyasında bir yönlendirme kuralı olabilir. Kullanıcı istekleri http://yourdomain.com ve düzeni değişti ve onu yönlendirildi olabilir https: // alan_adiniz yerine http://yourdomain.com o aslında talebinde bulunmuştu hangi.

  2. Hem güvenli hem de güvenli olmayan URL'ler https ile başlar


2

ONAYLANMIŞ HATASI "Müşteri kaydı kasada başarısız oluyor" benim tarafımda biraz farklı oldu.

Müşteri kasada kayıt yaptırmayı seçerse, şifresi doğru kaydedilmemiş demektir. Müşteri sadece parolanın saklanmadığını doğru şekilde oluşturuyor. Bunu parolanın hoşgeldin e-postasında gösterilmemesi nedeniyle tespit ettim. İnsanlar bu yüzden de giriş yapamazlar.

Bugfix bağlantılı SUPEE-9767 Patch / CE 1.9.3.3 - Bir Sayfa Ödeme - Müşteri Kayıt sorunu benim için çok iş çıkarmış.


2

Birisi bana supee-9767’de bunun ... ... ne olduğunu söyleyebilir mi?

görüntü tanımını buraya girin


1
JQuery 1.10.2 sürümü savunmasız olarak kabul edilir ve bazı PCI tarayıcılar tarafından işaretlenir. 1.12 sürümü değil.
Ryan Hoerr

@Detzler StackExchange bir forum değil. Bir soru sormak istiyorsanız, bir soruya cevap değil bir soru göndermelisiniz.
toon81,

1
Ryan Hoerr yamanın getirdiği sorunları sordu. Bu yüzden ekran görüntüsünde gördüğünüz gibi ona olası bir kırılma değişikliği söyledim. Bu değişimin nedenini açıklayamam. Ben de sordum. Peki senin derdin ne?
Detzler

2

Yama vanilya Magento için bile çalışmıyor 1.7.0.2.

martins@martinsmac.local:/var/www/magento1702-original$ ./PATCH_SUPEE-9767_CE_1.7.0.2_v1-2017-05-25-09-31-32.sh
Checking if patch can be applied/reverted successfully...
ERROR: Patch can't be applied/reverted successfully.

patching file app/code/core/Mage/Admin/Model/Session.php
Hunk #1 succeeded at 109 (offset -29 lines).
patching file app/code/core/Mage/Adminhtml/Block/Checkout/Formkey.php
patching file app/code/core/Mage/Adminhtml/Block/Notification/Symlink.php
patching file app/code/core/Mage/Adminhtml/Block/Widget/Grid/Column/Filter/Date.php
patching file app/code/core/Mage/Adminhtml/Model/Config/Data.php
patching file app/code/core/Mage/Adminhtml/controllers/Catalog/Product/GalleryController.php
patching file app/code/core/Mage/Checkout/controllers/MultishippingController.php
patching file app/code/core/Mage/Checkout/controllers/OnepageController.php
Hunk #1 succeeded at 293 (offset -34 lines).
Hunk #2 succeeded at 313 (offset -34 lines).
Hunk #3 succeeded at 363 (offset -34 lines).
Hunk #4 succeeded at 392 (offset -34 lines).
Hunk #5 succeeded at 431 (offset -34 lines).
patching file app/code/core/Mage/Checkout/etc/system.xml
patching file app/code/core/Mage/Cms/Model/Wysiwyg/Images/Storage.php
patching file app/code/core/Mage/Core/Controller/Front/Action.php
patching file app/code/core/Mage/Core/Controller/Request/Http.php
Hunk #1 succeeded at 141 (offset -7 lines).
can't find file to patch at input line 377
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git app/code/core/Mage/Core/Model/File/Validator/Image.php app/code/core/Mage/Core/Model/File/Validator/Image.php
|index 7f7b9d0..cbbcbb1 100644
|--- app/code/core/Mage/Core/Model/File/Validator/Image.php
|+++ app/code/core/Mage/Core/Model/File/Validator/Image.php
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
2 out of 2 hunks ignored
patching file app/code/core/Mage/Core/etc/config.xml
patching file app/code/core/Mage/Core/etc/system.xml
patching file app/code/core/Mage/Customer/Model/Session.php
patching file app/code/core/Mage/Dataflow/Model/Convert/Adapter/Zend/Cache.php
patching file app/code/core/Mage/Dataflow/Model/Convert/Container/Abstract.php
patching file app/code/core/Mage/Dataflow/Model/Convert/Parser/Csv.php
patching file app/code/core/Mage/Dataflow/Model/Convert/Parser/Xml/Excel.php
patching file app/code/core/Mage/ImportExport/Model/Import/Uploader.php
patching file app/code/core/Mage/Sales/Model/Quote/Item.php
Hunk #1 FAILED at 502.
1 out of 1 hunk FAILED -- saving rejects to file app/code/core/Mage/Sales/Model/Quote/Item.php.rej
patching file app/code/core/Mage/Widget/Model/Widget/Instance.php
patching file app/code/core/Mage/XmlConnect/Helper/Image.php
patching file app/design/adminhtml/default/default/layout/main.xml
patching file app/design/adminhtml/default/default/template/notification/formkey.phtml
patching file app/design/adminhtml/default/default/template/notification/symlink.phtml
patching file app/design/adminhtml/default/default/template/page/head.phtml
patching file app/design/frontend/base/default/template/checkout/cart/shipping.phtml
patching file app/design/frontend/base/default/template/checkout/multishipping/billing.phtml
patching file app/design/frontend/base/default/template/checkout/multishipping/shipping.phtml
patching file app/design/frontend/base/default/template/checkout/onepage/billing.phtml
patching file app/design/frontend/base/default/template/checkout/onepage/payment.phtml
patching file app/design/frontend/base/default/template/checkout/onepage/shipping.phtml
patching file app/design/frontend/base/default/template/checkout/onepage/shipping_method.phtml
patching file app/design/frontend/base/default/template/persistent/checkout/onepage/billing.phtml
patching file app/etc/config.xml
patching file app/locale/en_US/Mage_Adminhtml.csv
patching file app/locale/en_US/Mage_Core.csv
patching file app/locale/en_US/Mage_Dataflow.csv
patching file downloader/Maged/Connect.php
patching file downloader/Maged/Controller.php
Hunk #1 succeeded at 400 (offset -5 lines).
Hunk #2 succeeded at 923 (offset -5 lines).
patching file downloader/Maged/Model/Session.php
Hunk #2 succeeded at 235 with fuzz 2 (offset -13 lines).
patching file js/varien/payment.js
patching file skin/frontend/base/default/js/opcheckout.js

eski yamaları manuel olarak uyguladıktan sonra bile.

$ grep '|' app/etc/applied.patches.list
2017-06-19 04:01:42 UTC | SUPEE-2677 | EE_1.13.0.2 | v2 | d20e6763cd0df70c4ac6e418c9775a1ff0f2618f | Tue Jan 14 17:49:25 2014 +0200 | v1.13.0.2..HEAD
2017-06-19 04:03:26 UTC | SUPEE-2629 | EE_1.12.0.0 | v1 | 5de775cf535e137b0b099d8066bd5b3a81f7ec4c | Wed Dec 11 16:50:40 2013 +0200 | v1.12.0.0..HEAD
2017-06-19 04:04:12 UTC | SUPEE-1049 | EE_1.12.0.2 | v1 | 5cd884653325315804056d4c591572385b3c1d03 | Thu Mar 20 16:33:19 2014 +0200 | v1.12.0.2..HEAD
2017-06-19 04:05:01 UTC | SUPEE-1868-1-12-0-2 | EE_1.12.0.2 | v1 | 2148b1b6be28a9bad0bec9a4aecc63ed318dd201 | Fri Jul 26 13:20:27 2013 -0700 | v1.12.0.2..HEAD
2017-06-19 04:06:38 UTC | SUPEE-4334-v1.11.1.0 | EE_1.11.1.0 | v1 | 40f5a2e4db9ca53dc6a8e62eb0c728fd63b1157e | Wed Sep 10 10:42:31 2014 -0700 | ef80f7bff749c941b4d1736cc2b502888e7540c9
2017-06-19 04:07:10 UTC | SUPEE-1533 | EE_1.12 | v1 | _ | n/a | SUPEE-1533_EE_1.12_v1.patch
2017-06-19 04:08:41 UTC | SUPEE-5345 | EE_1.12.0.2 | v1 | 2d36f61cf684ed26286b6d10307fcb99dd47ff02 | Thu Feb 5 19:39:01 2015 +0200 | v1.12.0.2..HEAD
2017-06-19 04:09:29 UTC | SUPEE-5994 | CE_1.6.0.0 | v1 | _ | n/a | SUPEE-5994_CE_1.6.0.0_v1.patch
2017-06-19 04:10:00 UTC | SUPEE-6237 | EE_1.14.2.0 | v1 | 8b216c42e2e5d2cb5d8e500fcb6690abede9df52 | Fri Jun 12 13:39:59 2015 +0300 | v1.14.2.0..HEAD
2017-06-19 04:11:22 UTC | SUPEE-6285 | CE_1.7.0.2 | v1 | 84749c91e14543e1f96af30e86efdf29f4562c98 | Tue Jun 23 09:48:07 2015 +0300 | c6e6cee8eb..84749c91e1
2017-06-19 04:11:50 UTC | SUPEE-6482 | CE_1.8.0.0 | v1 |  | Tue Jul 14 14:17:04 2015 +0300 |
2017-06-19 04:12:12 UTC | SUPEE-7616 | CE_1.7.0.2-CE_1.4.2.0 | v1 | a16c51e3679c3f19de6c3207b7a42daa7f9227fc | Fri Dec 18 12:42:03 2015 +0200 | 3617437b6da11be812fcca85f4e6ecbd8b8dc94c..a16c51e3679c3f19de6c3207b7a42daa7f9227fc
2017-06-19 04:14:30 UTC | SUPEE-8167 | EE_1.12.0.2 | v1 | b1be28f9cd8c2ecba2aa403e59ad9e3d2855eb95 | Thu May 4 13:52:13 2017 +0300 | 8d12ea6fe564b6dc9ed1affb6de990f81aca3796..HEAD
2017-06-19 04:16:21 UTC | SUPEE-8967 | EE_1.13.1.0 | v1 | 1fa53e9533f6f3a16f24d9b64dabef0ab7f965d7 | Thu Aug 18 16:32:48 2016 +0300 | 97d160644..1fa53e9533
2017-06-19 04:16:44 UTC | SUPEE-9652 | EE_1.14.3.1 | v1 | 4038f0785d828794083f53f10c01aaa6af403523 | Tue Jan 24 15:03:12 2017 +0200 | 9586981e6ca8b255014b242d50b68b88525b0754..4038f0785d828794083f53f10c01aaa6af403523
2017-06-19 04:19:35 UTC | SUPEE-6788 | CE_1.7.0.2 | v1 | 0398c4b951d9a0f64495e7b8b3b8ca480952dd70 | Fri Oct 23 13:50:23 2015 +0300 | cfc252b

Bulduğum çözüm / problem , 1.7.0.2 için düzeltme ekindeki değişikliklerin bir kısmının 1.9.2.3'ten önce var olmayan dosyalar için yapılmış olmasıdır. Bu yüzden , yama betiğini çalıştırmadan önce aşağıdaki dosyaları yepyeni 1.9.2.3 kurulumundan kopyaladım :

  • Uygulama / kod / çekirdek / Mage / çekirdek / Model / Dosya / Doğrulayıcı / image.php
  • Uygulama / kod / çekirdek / Mage / Satış / Modeli / Sözü / Item.php

Yama, diğer tüm güvenlik yamalarının zaten uygulanmış olduğunu varsayar. Bahsettiğiniz dosyalar önceki yamalar tarafından eklendi / değiştirildi. En azından SUPEE-7405'i kaçırıyorsunuz.
Ryan Hoerr

Selam Ryan, Aslında ben de 7405'i uygulamaya çalıştım, ama işe yaramadı ... $ ./PATCH_SUPEE-7405_CE_1.7.0.2_v1.1-2016-02-23-07-22-52 \ (1) .sh Düzeltme ekinin başarıyla uygulanıp uygulanamadığını kontrol etme ... HATA: Düzeltme eki başarıyla uygulanamıyor / geri alınamıyor. (..) Adminhtml / Helper / Sales.php Hunk # 1 121'de başarısız oldu. 1 hunk'tan 1'i başarısız oldu - dosyaya kaydetmeyi reddetme (..) Adminhtml / Helper / Sales.php.rej yama dosyasını (..) / Çekirdek / Model / Config.php Hunk # 1 1642'de başarısız oldu. 1 hunk'tan 1'i BAŞARISIZ - kaydetme, (..) dosyasına kaydetmeyi reddetti. Config.php.rej yama dosyası (..) 509 BAŞARISIZ ....
Ricardo Martins

@RicardoMartins bu hatayı nasıl çözebilirim: app app / locale / en_US / Mage_Adminhtml.csv dosya ekleme # Hunk # 2 36 numarada başarısız oldu. ?
zus

0

Jut’a ek olarak Https://magento.stackexchange.com/a/176930/46249 adresine

Symlinks'in yeni Magento kurulumlarında varsayılan olarak 'NO' olarak ayarlanmış YES / NO yapılandırma değerlerinde varsayılan olarak devre dışı bırakıldığını unutmayın. Güncelleme şimdi açıkça config.xml içindeki sembolik bağlantıları devre dışı bırakır ve ek bir önlem olarak, şablon bölümünü yapılandırma seçeneğini içeren admin-> developerdan da kaldırır.

Bu, geçerli sembol bağlantı ayarlarınızı etkilemez, 1.9.3.2'den önceki sembolik bağlantıları el ile etkinleştirdiyseniz, ayarları yönetici olarak daha fazla göremeseniz de etkin kalırlar.


Kalın yazı doğru değil. Güncelleyerek Eğer 1.9.3.4 (SUPEE-9767 V2) veya daha yeni geçerli ayarlar silinecek:

# app/code/core/Mage/Core/sql/core_setup/upgrade-1.6.0.6-1.6.0.7.php
$connection->delete(
    $this->getTable('core_config_data'),
    $connection->prepareSqlCondition('path', array(
        'like' => 'dev/template/allow_symlink'
    ))
);

Sorumlu yöneticiler, app / code / core / Mage / Core / etc / system.xml dosyasındaki şablon bölümündeki değişiklik değişikliklerini arayarak ve bölümü 600. civarı civarındaki system.xml dosyasına ekleyerek, yine link yönetim yönetici bölümünü etkinleştirebilir. çift ​​çek sembolik çizgiler hala etkin

Sadece config seçeneğini tekrar görünür hale getirmek problemi çözmez. Seçenek görünür, ancak yeni tanıtılan arka uç modeli değerin kaydedilmesini önlediğinden, config ayarını değiştiremezsiniz. Görmek:

# app/code/core/Mage/Core/etc/system.xml
<backend_model>adminhtml/system_config_backend_symlink</backend_model>

ve

# Mage_Adminhtml_Model_System_Config_Backend_Symlink
public function save()
{
    return $this;
}

Bu nedenle bu arka uç modelini kaldırmanız veya geçersiz kılmanız gerekir , bkz. SUPEE-9767 V2 yüklendikten sonra sembolik bağlantıları nasıl etkinleştirirsiniz?

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.