Yeni yama supee-6788 yama nasıl uygulanır


29

Bugün eki bekledikten haftalar sonra (27.10.2015) piyasaya sürüldü: SUPEE-6788

Bir çok şey eklenmiş ve ayrıca olası güvenlik açıkları için yüklü modülleri gözden geçirmeye teşvik edilmiştir.

Düzeltme ekinin nasıl uygulanacağı hakkında bazı bilgiler edinmek için bu postayı açıyorum. Yamayı uygulama adımları nelerdir? Anladığım kadarıyla bu adımlar:

  1. Yönetici URL'sinde olmayan yönetici işlevli modülleri düzeltin
  2. SQL ifadelerini alan adları veya çıkış alanları olarak kullanan modülleri düzeltin
  3. Beyaz liste blokları veya gibi {{config path=”web/unsecure/base_url”}}ve değişkenleri kullanan yönergeler{{bloc type=rss/order_new}}
  4. Özel Seçenek Dosya Türü ile potansiyel Exploit'lerin ele alınması (nasıl yapılacağı hakkında hiçbir fikriniz yok)
  5. Yamayı uygula

Bu doğru prosedür mü?


1
Güncel listelenen CE sürümleri 1.7.0.0 - 1.9.2.0
Fiasco Labs

5
Yama değiştirir .htaccess.samplehem de .htaccess. İkincisi çoğu mağazada özelleştirilmiştir, bu işlem yamanın başarısız olmasına neden olur => Geçici olarak Magento'daki orijinal dosyayla değiştirmeniz, yamayı uygulamanız, kendi .htaccess'inizi geri yüklemeniz ve erişimi cron.phpel ile koruyan değişikliği uygulamanız gerekir (don ' Bu üretim süreci için üretim sistemini kullanmayın!)
Fabian Schmengler

1
nginx kullananlar ne olacak?
lloiacono,

4
Bu soruyu konu dışı olarak kapatmak için oy kullanıyorum çünkü soru yok. Lütfen sohbeti sohbete
7

2
Yazının başlığında bir soru var, ayrıca son paragrafta daha belirginim. Buna rağmen, bu tür bir gönderi yeni yayımlanan bir düzeltme ekini uygularken yorumları ve en iyi uygulamaları merkezileştirmek için bence çok yararlıdır.
lloiacono,

Yanıtlar:


33

Genel olarak, yamayı önceki tüm uygular gibi uygulayabilirsiniz. Resmi belgelere bir göz atın ve bu SE postasını kontrol edin . Fakat evet, bu yamayı uygularken kontrol etmeniz gereken bazı ek noktalar var. Byte / Hypernode'un bu konuda iyi bir mesajı var.

  1. Temanızın özel template/customer/form/register.phtmlveya özel olup olmadığını kontrol edin template/persistent/customer/form/register.phtml. Bu durumda, a içerdiğinden emin olun form_key.
  2. Temanızın özel olup olmadığını kontrol edin layout/customer.xml. Bu durumda, düzeltme ekinde gerekli değişiklikleri uyguladığınızdan emin olun ( customer_account_resetpasswordolarak değiştirildi customer_account_changeforgotten).
  3. Standart olmayan değişkenleri CMS sayfalarında, statik bloklarda veya e-posta şablonlarında kullanıyor musunuz? Sonra onları beyaz listeye eklediğinden emin ol. Değişkenlerin / blokların nasıl beyaz listeleneceğini öğrenmek için bu SE sorusuna bakın .
  4. Çalıştırmak mı cron.phpHTTP üzerinden? Daha iyi kullandığından emin ol cron.sh. Bu mümkün değilse, en azından cli.php'yi CLI PHP ile aradığınızdan emin olun. Bazı nedenlerden dolayı gerçek bir cronjob yapılandıramazsanız ve bunu HTTP üzerinden çalıştırmanız gerekirse, bu SE sorusuna bakın
  5. Tüm uzantılarınızın "yeni" yönetici yönlendirmesini kullandığından emin olun. Kontrol etmek için bu n98-magerun eklentisini kullanabilirsiniz. Bu CLI betiğini de kullanabilirsiniz . Bu SE sorusuna da bir göz atabilirsiniz .
    1. Tüm uzantılarınız uygun yönetici yönlendirmesini kullandığında, Sistem - Yapılandırma - Yönetici - Güvenlik altındaki "Yönetici yönlendirme uyumluluk modunu etkinleştir" i devre dışı bıraktığınızdan emin olun.
  6. M2ePro kullanıyorsanız, eski sürümler yeni yama ile çalışmadığından, en son sürüme güncelleyin.

Güncelleme yaparken dosyayı sildiğinizden emin olun dev/tests/functional/.htaccess. Magento 1.9.2.2'de artık mevcut değil. Saklamak, hala savunmasız olduğun anlamına gelir.

Her durumda, her şeyin yolunda gidip gitmediğini görmek için güncelleme yaptıktan sonra sayfanızı MageReport ile kontrol edin .

Ayrıca, Piotr tarafından yapılan ve kritik değişiklikleri tanımlayan teknik bir blog yazısı da bulunmaktadır .


Küçük bir not, CLI betiği 'Her şeyi doğrula, ardından yönetici denetleyici uyumluluk modunu devre dışı bırak' ifadesinden bahseder. Bence bunu mümkün kılmak için tam tersi anlamına geliyorlar. Bu doğru mu?
Michael

1
@ kaska Tüm uzantılarınız tamamsa , uyumluluk modunu devre dışı bırakmanız gerekir .
Simon

Bir üretim ortamında tamamen kaldırmak / dev olmamalıdır?
paj

1
paj teorik olarak evet. Ancak 1.9.2.2 sürümüyle, bir .htaccess ile korunmaktadır, bu nedenle saklaması tamam olmalı. Yukarıdaki .htaccess tavsiyemi takip ettiğinizden emin olun.
Simon

Bütünlüğü için teşekkür ederim, bir dahaki sefere yoğunlaştırılmış tahliye notlarını yazmanıza izin vermeliler! Süper yararlı!
asherrard


3

Nginx için cron.php ve dev klasörüne erişimi engellediğinizden emin olun. Bu bloğu kullanıyoruz:

location ~ ^/(app|includes|media/downloadable|pkginfo|report/config.xml|var|magmi|cron.php|dev)/? { deny all; }

regex'iniz çalışmaz, yalnızca dizine karşı denetlediğiniz için. öyleyse "report / config.xml, cron.php" eşleşmiyor ve sonunda bir dikey çubuk veya boru sembolünüz var .. copy-paste? ayrıca / app / ile birlikte regex'i karıştırmayın, eğer bir şeyi yanlış yere koyarsanız, saldırıya uğrayacak.
MagenX

Kötü kopyala ve yapıştır işi, üzgünüm. Eklendi? sonunda sonunda eğik çizgi isteğe bağlıdır. Şimdi test ettim ve olması gerektiği gibi çalışıyor.
Adam L.,

Ayrıca bu regex açıktır, ^ /, kaynak dosyalarınızı / old /, / upgrade / etc gibi üst klasöre kopyalamadığınızdan emin olun,
MagenX

@MagenX Yani sürüm kontrolü veya standart sistem yönetimi BCP kullanmazsanız, bu regex'in suçlu olduğunu mu söylüyorsunuz?
Melvyn

1

Yamayı sadece 1.10.1 EE cihazıma uyguladım ve çekirdek yerel APPSEC-1063 uyumlu olmadığından yerel ekranlarda yan etkilere neden oldum:

Örnek:

İçinde app/code/core/Mage/Customer/Model/Entity/Attribute/Collection.php

addFieldToFilterAPPSEC-1063 uyumlu olmayan 2 arama bulabilirsiniz .

Bu Müşteri> Öznitelik ızgaralarını kırıyor, bu yüzden APPSEC-1063 bölümünde "SUPEE-6788-Teknik% 20Detaylar% 20.pdf" bölümündeki pdf öğelerini kullanarak düzeltme ekini düzeltmeniz gerekiyor.

Birkaç değiştirme

    $this->addFieldToFilter($field, 0);

($ field burada karmaşık (CASE .. NE ZAMAN ...) sql deyimlerini içerir)

içine

    $resultCondition = $this->_getConditionSql($field, 0);
    $this->_select->where($resultCondition);

Her ikisi de rhoerr'in supee-6788-araç kutusu ve gaiterjones bu tür sorunları tespit edemedi, ben de diğerlerini kontrol ettim -> addFieldToFilter ($ ve hiçbiri soruna neden gibi görünmüyor.

Etkilenen diğer 1.10 çekirdek dosya: (rhoerr's supee-6788-toolbox tarafından bulundu)

app/code/core/Mage/Bundle/Model/Mysql4/Option/Collection.php 

Daha fazlası olabilir.

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.