नया पैच supee-6788 पैच कैसे लगाए


29

आज (27.10.2015) पैच के इंतजार के हफ्तों के बाद इसे जारी किया गया: SUPEE-6788

बहुत सी चीजों को पैच किया गया था और संभावित कमजोरियों के लिए स्थापित मॉड्यूल की समीक्षा करने के लिए भी प्रोत्साहित किया गया है।

पैच लगाने के तरीके के बारे में कुछ जानकारी प्राप्त करने के लिए मैंने यह पोस्ट खोला। पैच लागू करने के लिए क्या कदम हैं? मेरी समझ से यह कदम हैं:

  1. व्यवस्थापक कार्यक्षमता के साथ मॉड्यूल को ठीक करें जो व्यवस्थापक URL के अंतर्गत नहीं है
  2. ऐसे मॉड्यूल को ठीक करें जो SQL कथनों को फ़ील्ड नाम या एस्केप फ़ील्ड के रूप में उपयोग करते हैं
  3. श्वेत सूची ब्लॉक या निर्देश जो चर का उपयोग करता है जैसे {{config path=”web/unsecure/base_url”}}और{{bloc type=rss/order_new}}
  4. कस्टम विकल्प फ़ाइल प्रकार के साथ संभावित एक्सप्लॉइट को संबोधित करना (पता नहीं यह कैसे करना है)
  5. पैच अप्लाई करें

क्या यह सही प्रक्रिया है?


1
1.9.2.0 के माध्यम से वर्तमान सूचीबद्ध सीई संस्करण 1.7.0.0
फिएस्को लैब्स

5
पैच के .htaccess.sampleरूप में अच्छी तरह से बदलता है .htaccess। उत्तरार्द्ध अधिकांश दुकानों में अनुकूलित किया गया है, इससे पैच विफल हो जाएगा => आपको इसे अस्थायी रूप से मैगेंटो से मूल फ़ाइल से बदलने की आवश्यकता है, पैच लागू करें, अपने स्वयं के .htaccess को पुनर्स्थापित करें और परिवर्तन को लागू करें जो cron.phpमैन्युअल रूप से पहुंच की रक्षा करता है (डॉन) टी निश्चित रूप से इस प्रक्रिया के लिए उत्पादन प्रणाली का उपयोग करें)!
फैबियन Schmengler

1
नगीनेक्स का उपयोग करने वालों के बारे में क्या?
लॉयडियाको

4
मैं इस प्रश्न को ऑफ-टॉपिक के रूप में बंद करने के लिए मतदान कर रहा हूं क्योंकि कोई प्रश्न नहीं है। कृपया चैट पर
7ochem

2
पोस्ट के बहुत शीर्षक में एक प्रश्न है, अंतिम पैराग्राफ में भी मैं अधिक विशिष्ट हूं। इसके बावजूद, नए जारी किए गए पैच को लागू करते समय टिप्पणियों और सर्वोत्तम प्रथाओं को केंद्रीकृत करने के लिए मेरी राय में इस तरह की पोस्ट बहुत उपयोगी हैं।
लॉयडियाको 19

जवाबों:


33

सामान्य तौर पर, आप पैच को पिछले सभी के रूप में लागू कर सकते हैं। पर एक नज़र डालें आधिकारिक दस्तावेज है और इस जाँच एसई पद । लेकिन हां, इस पैच को लागू करते समय आपको कुछ अतिरिक्त बिंदुओं की जांच करनी चाहिए। बाइट / हाइपरनोड में इसके बारे में एक अच्छी पोस्ट है।

  1. जाँच करें कि क्या आपके विषय में एक प्रथा template/customer/form/register.phtmlया रिवाज है template/persistent/customer/form/register.phtml। यदि यह मामला है, तो सुनिश्चित करें कि इसमें ए शामिल है form_key
  2. जांचें कि क्या आपके विषय में कोई रिवाज है layout/customer.xml। यदि यह मामला है, तो पैच से आवश्यक परिवर्तन लागू करना सुनिश्चित करें ( customer_account_resetpasswordइसे बदल दिया गया है customer_account_changeforgotten)।
  3. क्या आप सीएमएस पृष्ठों, स्टैटिक ब्लॉक या ईमेल टेम्प्लेट में गैर-मानक चर का उपयोग करते हैं? फिर सुनिश्चित करें कि आप उन्हें सफेद करना। श्वेतसूची चर / ब्लॉकों को कैसे सीखें, यह एसई प्रश्न देखें ।
  4. आप cron.phpHTTP के माध्यम से चलाते हैं ? सुनिश्चित करें कि आप बेहतर उपयोग करते हैं cron.sh। यदि यह संभव नहीं है, तो कम से कम सुनिश्चित करें कि आप CLI PHP के माध्यम से cron.php को कॉल करें। यदि किसी कारण से आप एक वास्तविक क्रोनजॉब को कॉन्फ़िगर नहीं कर सकते हैं और इसे HTTP के माध्यम से चलाने की आवश्यकता है, तो यह एसई प्रश्न देखें
  5. सुनिश्चित करें कि आपके सभी एक्सटेंशन "नए" व्यवस्थापक रूटिंग का उपयोग करते हैं। जांचने के लिए आप इस n98-magerun प्लगइन का उपयोग कर सकते हैं । आप इस CLI स्क्रिप्ट का उपयोग भी कर सकते हैं । आप इस संबंधित एसई प्रश्न पर भी नज़र डाल सकते हैं ।
    1. जब आपके सभी एक्सटेंशन उचित व्यवस्थापक रूटिंग का उपयोग करते हैं, तो सिस्टम - कॉन्फ़िगरेशन - व्यवस्थापक - सुरक्षा के तहत "सक्षम करें प्रशासन रूटिंग संगतता मोड को अक्षम करें"।
  6. यदि आप M2ePro का उपयोग करते हैं, तो इसे नवीनतम संस्करण में अपडेट करें क्योंकि पुराने संस्करण नए पैच के साथ काम नहीं करते हैं।

अपडेट करते समय, सुनिश्चित करें कि आप फ़ाइल को हटा दें dev/tests/functional/.htaccess। यह Magento 1.9.2.2 में किसी भी अधिक मौजूद नहीं है। इसका मतलब है कि आप अभी भी कमजोर हैं।

किसी भी मामले में, के साथ अपने पृष्ठ की जांच MageReport देखने के लिए कि सब कुछ अच्छी तरह से चला गया अद्यतन करने के बाद।

Piotr द्वारा एक तकनीकी ब्लॉग पोस्ट भी है , जो महत्वपूर्ण परिवर्तनों का वर्णन करता है।


बस थोड़ा सा ध्यान दें, CLI स्क्रिप्ट में 'सभी को अच्छी तरह से सत्यापित करें, फिर व्यवस्थापक नियंत्रक संगतता मोड अक्षम करें' का उल्लेख है। मुझे लगता है कि वे इसके विपरीत मतलब है, इसे सक्षम करने के लिए। क्या वह सही है?
माइकल

1
@kaska यदि आपके सभी एक्सटेंशन ठीक हैं, तो आपको संगतता मोड को अक्षम करना होगा।
सिमोन

एक उत्पादन वातावरण में आप पूरी तरह से हटा / देव नहीं होना चाहिए?
पेज

1
@paj सैद्धांतिक रूप से हाँ। लेकिन संस्करण 1.9.2.2 के साथ, यह एक .htaccess के साथ संरक्षित है, इसलिए इसे रखना ठीक होना चाहिए। बस मेरे .htaccess सलाह का पालन करना सुनिश्चित करें।
साइमन

पूर्णता के लिए धन्यवाद, उन्हें अगली बार आपको संघनित नोट लिखने की अनुमति देनी चाहिए! सुपर सहायक!
आशेर


3

Nginx के लिए, सुनिश्चित करें कि आप cron.php और देव फ़ोल्डर तक पहुंच को रोकते हैं। हम इस ब्लॉक का उपयोग करते हैं:

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

आपका रेगेक्स काम नहीं करेगा, क्योंकि आप केवल निर्देशिका के खिलाफ जांच करते हैं, इसलिए "रिपोर्ट / config.xml, cron.php" मेल नहीं खाता है, और आपके पास अंत में एक ऊर्ध्वाधर पट्टी या पाइप प्रतीक है .. कॉपी-पेस्ट? / app / के साथ मिलकर regex को गड़बड़ न करें, यदि आप कुछ गलत करते हैं, तो इसे हैक कर लिया जाएगा।
मैगेंक्स

खराब कॉपी और पेस्ट नौकरी, क्षमा करें। में जोड़ा गया? अंत में इसलिए अनुगामी स्लैश वैकल्पिक है। अभी इसका परीक्षण किया है और यह उसी तरह काम कर रहा है जैसे इसे करना चाहिए।
एडम एल।

यह भी रेगेक्स असुरक्षित है, आपके पास ^ / है, सुनिश्चित करें कि आप अपने स्रोत फ़ाइलों को शीर्ष फ़ोल्डर में कॉपी न करें, जैसे / पुराना /, / अपग्रेड / आदि
MagenX

@MagenX तो आप कह रहे हैं कि यदि आप संस्करण नियंत्रण या मानक प्रणाली प्रशासन BCP का उपयोग नहीं करते हैं, तो यह कि इस regex को दोष देना है?
मेल्विन

1

मैंने सिर्फ अपने 1.10.1 ईई पर पैच लागू किया है और यह देशी स्क्रीन पर दुष्प्रभाव का कारण बनता है क्योंकि कोर APPSEC-1063 अनुरूप नहीं है:

उदाहरण:

में app/code/core/Mage/Customer/Model/Entity/Attribute/Collection.php

आप addFieldToFilterAPPSEC-1063 अनुरूप 2 कॉल पा सकते हैं ।

यह ग्राहक को तोड़ रहा है> ग्रिडों को अट्रैक्ट करें, इसलिए आपको पैच को पैच करना होगा, वे एपीपीएसईसी -1063 सेक्शन में "सुपरई-6788-टेक्निकल% 20Details% 20.pdf" में सुझाए गए ट्रिक का उपयोग करें।

कई बदल रहा है

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

(जहां $ क्षेत्र में जटिल (CASE .. जब हो ...) sql स्टेटमेंट शामिल हैं)

में

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

दोनों रोर के सुपरि-6788-टूलबॉक्स और गैटरजोन के इस तरह के मुद्दों का पता नहीं लगा, मैंने अन्य सभी को चेक किया -> addFieldToFilter ($ और कोई भी समस्या पैदा नहीं करता है।

अन्य प्रभावित १.१० कोर फाइलें: (रोर की सुपी -६ tool tool४-टूलबॉक्स से मिली)

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

और भी हो सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.