Daha önce de belirtildiği gibi, yamalı güvenlik açıkları bu resmi sayfada ayrıntılı olarak açıklanmaktadır (yeni ticari dokümanlar): http://merch.docs.magento.com/ce/user_guide/Magento_Community_Edition_User_Guide.html#magento/patch-releases-2015.html
özet
Bu paket, aşağıdaki güvenlikle ilgili sorunlara karşı koruma içerir:
- RSS ve Ayrıcalık Yükselmesi ile Müşteri Bilgi Kaçakları
- Magento Connect'te Sahtecilik İsteği Kod Yürütülmesine Yol Açıyor
- Siteler arası Scripting
- Sepet içinde siteler arası komut dosyası çalıştırma
- Mağaza Yolu Açıklaması
- Günlük Dosyalarındaki İzinler Çok Geniş
- Yönetici İçinde Siteler Arası Komut Dosyası Çalıştırma
- Siparişler RSS’inde Siteler Arası Komut Dosyası Oluşturma
Birkaç mağaza kurduktan sonra, topladığım şey buydu:
Tema yamaları
Bazı tema dosyaları, olası XSS saldırılarını önlemek için eklenmiş çıkışlarla eklenmiştir:
checkout/cart.phtml
checkout/cart/noItems.phtml
checkout/onepage/failure.phtml
rss/order/details.phtml
wishlist/email/rss.phtml
Temanızdaki temalar bu şablonlardan herhangi birini içeriyorsa veya doğrudan değişiklik yaptıysanız base/default
(iyi şanslar, şansınız dağılmış demektir), bunları el ile düzeltmeniz gerekir:
ödeme şablonlarında,
$this->getContinueShoppingUrl()
ile
Mage::helper('core')->quoteEscape($this->getContinueShoppingUrl())
içinde wishlist/email/rss.phtml
yerine
$this->helper('wishlist')->getCustomerName()
ile
Mage::helper('core')->escapeHtml($this->helper('wishlist')->getCustomerName())
In rss/order/details.phtml
yerine
<?php echo $this->__('Customer Name: %s', $_order->getCustomerFirstname()?$_order->getCustomerName():$_order->getBillingAddress()->getName()) ?><br />
<?php echo $this->__('Purchased From: %s', $_order->getStore()->getGroup()->getName()) ?><br />
ile
<?php $customerName = $_order->getCustomerFirstname() ? $_order->getCustomerName() : $_order->getBillingAddress()->getName(); ?>
<?php echo $this->__('Customer Name: %s', Mage::helper('core')->escapeHtml($customerName)) ?><br />
<?php echo $this->__('Purchased From: %s', Mage::helper('core')->escapeHtml($_order->getStore()->getGroup()->getName())) ?><br />
İzinler
.htaccess
dosyalar eklenmiş downloader/Maged
ve downloader/lib
kaynak dosyalara doğrudan erişime izin verilmemiştir. Nginx kullanıyorsanız, aynısını elde etmek için bu kuralları eklemeniz gerekir ( bunun için Ben Lessani'ye teşekkürler ):
location /downloader/Maged/ { deny all; }
location /downloader/lib/ { deny all; }
Ancak downloader
yine de dağıtımlardan canlı bir sistem sistemine dışlanmasını tavsiye ederim , bu durumda işlem yapmanız gerekmez.
Yönetici Ayrıcalıkları (ACL)
Kısıtlı yönetici hesapları kullanıyorsanız, üçüncü taraf uzantılarının bazı menüleri artık onlar için çalışmayabilir. Nedeni varsayılan dönüş değeri olmasıdır Mage_Adminhtml_Controller_Action::_isAllowed()
olarak değiştirildi true
için Mage::getSingleton('admin/session')->isAllowed('admin')
. ACL'yi kullanmadıkları için bu yöntemi yönetici denetleyicilerinde geçersiz kılmayan uzantılar, artık "ALL" ayrıcalığına ihtiyaç duyuyor .
Tek çözüm, uzantıları düzeltmek ve bu yöntemi tüm yönetici denetleyicilerine eklemektir:
protected function _isAllowed()
{
return true;
}
Ya da bunlar gerçekten tanımlanmış bir ACL kaynağına sahipse etc/adminhtml.xml
:
protected function _isAllowed()
{
return Mage::getSingleton('admin/session')->isAllowed('ENTER RESOURCE IDENTIFIER HERE');
}
(Yamanın, Phoenix_Moneybookers
bu uzantının dahil edildiği 1.7 gibi daha eski Magento sürümleri için aynı şeyi yaptığını görebilirsiniz )
Bu konuda daha ayrıntılı bir bakış açısı ve eksik ACL kaynaklarını nasıl tanımlayacağınız hakkında bir açıklama için, bkz: SUPEE-6285'i yükledikten sonra Erişim Reddedildi hataları
Yama uygulanırken olası hatalar
Mesaj:
can't find file to patch at input line 899
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git app/design/frontend/default/modern/template/checkout/cart.phtml app/design/frontend/default/modern/template/checkout/cart.phtml
|index 982ad5a..2bf6b37 100644
|--- app/design/frontend/default/modern/template/checkout/cart.phtml
|+++ app/design/frontend/default/modern/template/checkout/cart.phtml
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
1 out of 1 hunk ignored
Sebep:default/modern
tema yükleme çıkarıldı
Çözüm: Ekleme app/design/frontend/default/modern
taze Magento download (dükkanına aynı sürüm olmalıdır). Bu aynayı da kullanabilirsiniz: https://github.com/firegento/magento . Sonra yamayı başarıyla uyguladıktan sonra temayı tekrar kaldırabilirsiniz.
Mesaj
patching file downloader/Maged/.htaccess
can't find file to patch at input line 915
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git downloader/Maged/Controller.php downloader/Maged/Controller.php
|index aa9d705..32755d7 100644
|--- downloader/Maged/Controller.php
|+++ downloader/Maged/Controller.php
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
5 out of 5 hunks ignored
can't find file to patch at input line 976
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git downloader/Maged/Model/Session.php downloader/Maged/Model/Session.php
|index 18020eb..7013c94 100644
|--- downloader/Maged/Model/Session.php
|+++ downloader/Maged/Model/Session.php
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
2 out of 2 hunks ignored
patching file downloader/lib/.htaccess
can't find file to patch at input line 1020
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git downloader/template/connect/packages.phtml downloader/template/connect/packages.phtml
|index 9cca5a6..f42e74e 100644
|--- downloader/template/connect/packages.phtml
|+++ downloader/template/connect/packages.phtml
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
3 out of 3 hunks ignored
can't find file to patch at input line 1049
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git downloader/template/connect/packages_prepare.phtml downloader/template/connect/packages_prepare.phtml
|index f74c3df..86aa51b 100644
|--- downloader/template/connect/packages_prepare.phtml
|+++ downloader/template/connect/packages_prepare.phtml
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
1 out of 1 hunk ignored
can't find file to patch at input line 1061
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git downloader/template/login.phtml downloader/template/login.phtml
|index 6e4cd2c..dbbeda8 100644
|--- downloader/template/login.phtml
|+++ downloader/template/login.phtml
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
1 out of 1 hunk ignored
can't find file to patch at input line 1073
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git downloader/template/settings.phtml downloader/template/settings.phtml
|index 13551ac..47ab411 100644
|--- downloader/template/settings.phtml
|+++ downloader/template/settings.phtml
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
1 out of 1 hunk ignored
Sebep:downloader
dizin yükleme çıkarıldı
Çözüm: Ekleme downloader
taze Magento download (dükkanına aynı sürüm olmalıdır). Bu aynayı da kullanabilirsiniz: https://github.com/firegento/magento . Sonra yamayı başarıyla uyguladıktan sonra dizini tekrar kaldırabilirsiniz.
Mesaj: Benzer bir şey
checking file app/design/frontend/base/default/template/checkout/cart.phtml
Hunk #1 FAILED at 97 (different line endings).
1 out of 1 hunk FAILED
checking file app/design/frontend/base/default/template/checkout/cart/noItems.phtml
Hunk #1 FAILED at 31 (different line endings).
1 out of 1 hunk FAILED
checking file app/design/frontend/base/default/template/checkout/onepage/failure.phtml
Hunk #1 FAILED at 29 (different line endings).
1 out of 1 hunk FAILED
checking file app/design/frontend/base/default/template/rss/order/details.phtml
Hunk #1 FAILED at 31 (different line endings).
1 out of 1 hunk FAILED
checking file app/design/frontend/base/default/template/wishlist/email/rss.phtml
Hunk #1 FAILED at 25 (different line endings).
1 out of 1 hunk FAILED
Sebep: dosyalar (LF, Unix satır sonu) yerine \r\n
(CRLF, Windows satır sonu) veya \r
(CR, Mac satır sonu) ile saklanır \n
.
Çözüm: Satır sonlarını dönüştürmeniz yeterlidir, metin düzenleyiciniz veya IDE'nizin buna muktedir olması gerekir.