जैसा कि पहले ही उल्लेख किया गया है, इस आधिकारिक पृष्ठ (नए मर्चेंट डॉक्स) पर पैच की कमजोरियों का विस्तार से वर्णन किया गया है: http://merch.docs.magento.com/ce/user_guide/Magento_Community_Edition_Uu_Guide.html#magento/patch-releases-2015.html
सारांश
इस बंडल में सुरक्षा से संबंधित समस्याओं के खिलाफ सुरक्षा शामिल है:
- RSS और विशेषाधिकार वृद्धि के माध्यम से ग्राहक सूचना लीक
- Magento में क्षमा का अनुरोध कोड निष्पादन की ओर जाता है
- विशलिस्ट में क्रॉस-साइट स्क्रिप्टिंग
- क्रॉस-साइट स्क्रिप्टिंग कार्ट में
- पथ प्रकटीकरण की दुकान
- लॉग फ़ाइलें पर भी व्यापक
- क्रॉस-साइट स्क्रिप्टिंग इन एडमिन
- क्रॉस-साइट स्क्रिप्टिंग ऑर्डर्स आरएसएस में
कुछ दुकानों को पैच करने के बाद, यह वही है जो मैंने इकट्ठा किया:
थीम पैच
संभावित XSS हमलों को रोकने के लिए कुछ बचतों को जोड़ा गया है।
checkout/cart.phtml
checkout/cart/noItems.phtml
checkout/onepage/failure.phtml
rss/order/details.phtml
wishlist/email/rss.phtml
यदि आपके विषय में इनमें से कोई भी टेम्प्लेट शामिल हैं, या यदि आपने सीधे base/default
(अच्छे भाग्य, आप खराब हैं) में संशोधन किए हैं, तो आपको उन्हें मैन्युअल रूप से पैच करने की आवश्यकता है:
चेकआउट टेम्प्लेट में, सभी घटनाओं को बदलें
$this->getContinueShoppingUrl()
साथ में
Mage::helper('core')->quoteEscape($this->getContinueShoppingUrl())
में wishlist/email/rss.phtml
, प्रतिस्थापित करें
$this->helper('wishlist')->getCustomerName()
साथ में
Mage::helper('core')->escapeHtml($this->helper('wishlist')->getCustomerName())
में rss/order/details.phtml
, की जगह
<?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 />
साथ में
<?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 />
अनुमतियां
.htaccess
फ़ाइलों को स्रोत फ़ाइलों तक सीधी पहुंच को जोड़ने downloader/Maged
और downloader/lib
हटाने के लिए जोड़ा गया है । यदि आप नगनेक्स का उपयोग करते हैं, तो आपको इसे प्राप्त करने के लिए इन नियमों को जोड़ने की आवश्यकता है ( इस एक के लिए बेन लेसानी से):
location /downloader/Maged/ { deny all; }
location /downloader/lib/ { deny all; }
लेकिन मैं downloader
किसी भी तरह एक लाइव सिस्टम सिस्टम में तैनाती से बाहर करने की सलाह देता हूं , इस मामले में आपको कार्रवाई करने की आवश्यकता नहीं है।
व्यवस्थापक विशेषाधिकार (ACL)
यदि आप प्रतिबंधित व्यवस्थापक खातों का उपयोग करते हैं, तो तृतीय पक्ष एक्सटेंशन के कुछ मेनू उनके लिए अब और काम नहीं कर सकते हैं। कारण यह है कि डिफ़ॉल्ट वापसी मूल्य Mage_Adminhtml_Controller_Action::_isAllowed()
को से बदल दिया गया true
है Mage::getSingleton('admin/session')->isAllowed('admin')
। एक्सटेंशन जो इस पद्धति को उनके व्यवस्थापक नियंत्रकों में ओवरराइड नहीं करते हैं क्योंकि वे एसीएल का उपयोग नहीं करते हैं, अब "सभी" विशेषाधिकार की आवश्यकता है।
एकमात्र उपाय एक्सटेंशन पैच करना है और इस विधि को उनके सभी व्यवस्थापक नियंत्रकों में जोड़ना है:
protected function _isAllowed()
{
return true;
}
या अगर वे वास्तव में एक एसीएल संसाधन में परिभाषित हैं etc/adminhtml.xml
:
protected function _isAllowed()
{
return Mage::getSingleton('admin/session')->isAllowed('ENTER RESOURCE IDENTIFIER HERE');
}
(आप देख सकते हैं कि पैच Phoenix_Moneybookers
पुराने Magento संस्करणों के लिए 1.7 की तरह ही है जहां यह विस्तार शामिल था)
इस मुद्दे पर अधिक विस्तृत परिप्रेक्ष्य और गुम एसीएल संसाधनों को परिभाषित करने के तरीके की व्याख्या के लिए, देखें: SUPEE-6285 को स्थापित करने के बाद पहुंच अस्वीकृत
पैच लगाते समय संभावित त्रुटियां
संदेश:
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
कारण:default/modern
विषय स्थापना से हटा दिया गया था
समाधान:app/design/frontend/default/modern
एक ताजा Magento डाउनलोड से जोड़ें (आपकी दुकान के समान संस्करण होना चाहिए)। : आप भी इस दर्पण का उपयोग कर सकते https://github.com/firegento/magento । फिर पैच को सफलतापूर्वक लागू करने के बाद आप थीम को फिर से हटा सकते हैं।
संदेश
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
कारण:downloader
निर्देशिका स्थापना से हटा दिया गया था
समाधान:downloader
एक ताजा Magento डाउनलोड से जोड़ें (आपकी दुकान के समान संस्करण होना चाहिए)। : आप भी इस दर्पण का उपयोग कर सकते https://github.com/firegento/magento । फिर पैच को सफलतापूर्वक लागू करने के बाद आप निर्देशिका को फिर से हटा सकते हैं।
संदेश: कुछ इसी तरह का
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
कारण: फ़ाइलों को (LF, यूनिक्स लाइन ब्रेक) के बजाय \r\n
(CRLF, विंडोज लाइन ब्रेक) या \r
(CR, मैक लाइन ब्रेक) के साथ संग्रहीत किया जाता है \n
।
समाधान: बस लाइन ब्रेक को कन्वर्ट करें, आपका टेक्स्ट एडिटर या आईडीई इसके लिए सक्षम होना चाहिए।