सुरक्षा पैच SUPEE-10752 - संभावित मुद्दे?


14

25 APPSEC मुद्दों को संबोधित करते हुए Magento 1 के लिए एक नया सुरक्षा पैच बाहर है

https://magento.com/security/patches/supee-10752

इस पैच को लागू करते समय आपको किन सामान्य मुद्दों को देखना होगा?

SUPEE-10752, Magento कॉमर्स 1.14.3.9 और ओपन सोर्स 1.9.3.9 में कई सुरक्षा संवर्द्धन शामिल हैं जो कि प्रमाणीकृत व्यवस्थापक उपयोगकर्ता दूरस्थ कोड निष्पादन (RCE), क्रॉस-साइट अनुरोध जालसाजी (CSRF) और अन्य कमजोरियों को बंद करने में मदद करते हैं।

1.14.3.9 और 1.9.3.9 रिलीज़ के सभी परिवर्तनों की जानकारी Magento के कॉमर्स और Magento के ओपन सोर्स रिलीज़ नोट्स में उपलब्ध है।

पैच और उन्नयन निम्नलिखित Magento संस्करणों के लिए उपलब्ध हैं:

Magento वाणिज्य 1.9.0.0-1.14.3.9: SUPEE-10752 या Magento वाणिज्य में उन्नयन 1.14.3.9।

Magento Open Source 1.5.0.0-1.9.3.9: SUPEE-10752 या Magento Open Source 1.9.3.9 में अपग्रेड करें।


अंक के साथ साथ विस्तृत आई - magento.stackexchange.com/questions/248229/...
Shrenik

जवाबों:


19

Magento के आधिकारिक डॉक्स द्वारा उल्लेख के रूप में :

पैच की स्थापना के दौरान टकराव SUPEE-10752 पिछली पैच स्थापित के संस्करण 1 ( SUPEE-10570v1) के कारण अक्सर होता है ) के ।

कृपया SUPEE-10570v1 को निकालें और नए SUPEE-10752 की स्थापना से पहले SUPEE-10570v2 स्थापित करें


11

नीचे की फाइलें पैच लगाने के बाद बदल / बनाई जाती हैं

app/code/core/Mage/Admin/Model/User.php
app/code/core/Mage/Adminhtml/Block/Catalog/Product/Composite/Fieldset/Options.php
app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Options/Option.php
app/code/core/Mage/Adminhtml/Block/Widget/Grid/Column/Filter/Datetime.php
app/code/core/Mage/Adminhtml/Model/LayoutUpdate/Validator.php
app/code/core/Mage/Adminhtml/controllers/Catalog/CategoryController.php
app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php
app/code/core/Mage/Adminhtml/controllers/Cms/Wysiwyg/ImagesController.php
app/code/core/Mage/Adminhtml/controllers/Cms/WysiwygController.php
app/code/core/Mage/Adminhtml/controllers/CustomerController.php
app/code/core/Mage/Adminhtml/controllers/System/StoreController.php
app/code/core/Mage/Catalog/Model/Product.php
app/code/core/Mage/Catalog/Model/Resource/Category/Tree.php
app/code/core/Mage/Checkout/Model/Api/Resource/Customer.php
app/code/core/Mage/Checkout/Model/Type/Onepage.php
app/code/core/Mage/Checkout/controllers/CartController.php
app/code/core/Mage/Core/Helper/Http.php
app/code/core/Mage/Core/Model/Session/Abstract/Varien.php
app/code/core/Mage/Customer/Helper/Data.php
app/code/core/Mage/Customer/Model/Resource/Customer.php
app/code/core/Mage/Customer/controllers/AccountController.php
app/code/core/Mage/Log/Model/Visitor.php
app/code/core/Mage/Usa/Helper/Data.php
app/code/core/Mage/Usa/Model/Shipping/Carrier/Abstract/Backend/Abstract.php
app/code/core/Mage/Usa/Model/Shipping/Carrier/Ups/Backend/Freemethod.php
app/code/core/Mage/Usa/Model/Shipping/Carrier/Ups/Backend/OriginShipment.php
app/code/core/Mage/Usa/Model/Shipping/Carrier/Ups/Backend/Type.php
app/code/core/Mage/Usa/etc/system.xml
app/code/core/Zend/Filter/PregReplace.php
app/code/core/Zend/Validate/EmailAddress.php
app/design/adminhtml/default/default/template/bundle/product/edit/bundle/option.phtml

app/design/adminhtml/default/default/template/system/shipping/ups.phtml
app/design/frontend/base/default/template/downloadable/catalog/product/links.phtml
app/design/frontend/base/default/template/downloadable/checkout/cart/item/default.phtml
app/design/frontend/base/default/template/downloadable/checkout/onepage/review/item.phtml
app/design/frontend/base/default/template/downloadable/sales/order/items/renderer/downloadable.phtml
app/design/frontend/rwd/default/template/downloadable/checkout/cart/item/default.phtml
app/design/frontend/rwd/default/template/downloadable/checkout/onepage/review/item.phtml
app/design/frontend/rwd/default/template/downloadable/sales/order/items/renderer/downloadable.phtml
app/locale/en_US/Mage_Catalog.csv
app/locale/en_US/Mage_Usa.csv
cron.php
js/tiny_mce/plugins/media/.htaccess
lib/Varien/Image/Adapter/Gd2.php

ईई संस्करण के लिए नीचे की फाइलें सीई के अलावा अन्य जोड़ी जाती हैं

app/code/core/Enterprise/CatalogEvent/Block/Adminhtml/Event/Grid.php
app/code/core/Enterprise/GiftRegistry/Block/Adminhtml/Giftregistry/Edit/Attribute/Attribute.php
app/code/core/Enterprise/GiftRegistry/Model/Attribute/Processor.php
app/code/core/Enterprise/Invitation/Block/Adminhtml/Invitation/Grid.php
app/code/core/Enterprise/Logging/Block/Adminhtml/Details/Renderer/Diff.php
app/code/core/Enterprise/Reward/Block/Adminhtml/Customer/Edit/Tab/Reward/History/Grid/Column/Renderer/Reason.php
app/code/core/Enterprise/TargetRule/Model/Rule.php
app/code/core/Enterprise/TargetRule/controllers/Adminhtml/TargetruleController.php
app/design/adminhtml/default/default/template/enterprise/cms/page/revision/info.phtml

app/design/frontend/enterprise/default/template/cms/hierarchy/pagination.phtml
app/design/frontend/enterprise/iphone/template/downloadable/checkout/cart/item/default.phtml
app/design/frontend/enterprise/iphone/template/downloadable/checkout/onepage/review/item.phtml
app/design/frontend/rwd/enterprise/template/cms/hierarchy/pagination.phtml

एप्लिकेशन / कोड / कोर / दाना / व्यवस्थापक / मॉडल / User.php

+            $sessionUser = $this->getSession()->getUser();
+            if ($sessionUser && $sessionUser->getId() == $this->getId()) {
+                $this->getSession()->setUserPasswordChanged(true);
+            }


+    /**
+     * @return Mage_Admin_Model_Session
+     */
+    protected function getSession()
+    {
+        return  Mage::getSingleton('admin/session');
+    }
+

एप्लिकेशन / कोड / कोर / दाना / Adminhtml / ब्लॉक / विजेट / ग्रिड / कॉलम / फ़िल्टर / Datetime.php

                     $this->getLocale()->getDateTimeFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT)
                 );
             }
-            return $value;
+            return $this->escapeHtml($value);
         }

-        return parent::getEscapedValue($index);
+        return $this->escapeHtml(parent::getEscapedValue($index));
     }
-
 }

एप्लिकेशन / कोड / कोर / दाना / Adminhtml / नियंत्रक / सूची / CategoryController.php

+            if (isset($data['general']['path'])) {
+                unset($data['general']['path']);
+            }

एप्लिकेशन / कोड / कोर / दाना / Adminhtml / नियंत्रक / सूची / ProductController.php

+                $product->validate();

एप्लिकेशन / कोड / कोर / दाना / Adminhtml / नियंत्रक / CMS / WYSIWYG / ImagesController.php

+            $this->getResponse()->setHeader('Content-type', $image->getMimeTypeWithOutFileType());

एप्लिकेशन / कोड / कोर / दाना / Adminhtml / नियंत्रक / CMS / WysiwygController.php

+        $this->getResponse()->setHeader('Content-type', $image->getMimeTypeWithOutFileType());

एप्लिकेशन / कोड / कोर / दाना / Adminhtml / नियंत्रक / CustomerController.php

+                    $customer->setPasswordCreatedAt(time());

एप्लिकेशन / कोड / कोर / दाना / Adminhtml / नियंत्रक / सिस्टम / StoreController.php

+   /**
+     * Controller predispatch method
+     *
+     * @return Mage_Adminhtml_Controller_Action
+     */
+    public function preDispatch()
+    {
+        $this->_setForcedFormKeyActions(array('deleteWebsitePost', 'deleteGroupPost', 'deleteStorePost'));
+        return parent::preDispatch();
+    }

एप्लिकेशन / कोड / कोर / दाना / सूची / मॉडल / Product.php

+                        if (!empty($option['file_extension'])) {
+                            $fileExtension = $option['file_extension'];
+                            if (0 !== strcmp($fileExtension, Mage::helper('core')->removeTags($fileExtension))) {
+                                Mage::throwException(Mage::helper('catalog')->__('Invalid custom option(s).'));
+                            }
+                        }

एप्लिकेशन / कोड / कोर / दाना / सूची / मॉडल / संसाधन / श्रेणी / Tree.php

+            if (!preg_match("#^[0-9\/]+$#", $item['path'])) {
+                $item['path'] = '';
+            }

एप्लिकेशन / कोड / कोर / दाना / चेकआउट / मॉडल / एपीआई / संसाधन / Customer.php

+        $customer->setPasswordCreatedAt(time());

कोई भी onepage.php फ़ाइल को ओवरराइड करता है कृपया फ़ाइल को अपडेट करें।

एप्लिकेशन / कोड / कोर / दाना / चेकआउट / मॉडल / प्रकार / Onepage.php

  +        $passwordCreatedTime = $this->_checkoutSession->getData('_session_validator_data')['session_expire_timestamp']
    +            - Mage::getSingleton('core/cookie')->getLifetime();
    +        $customer->setPasswordCreatedAt($passwordCreatedTime);

कुंजी सत्यापन के लिए जोड़ा गया है, कृपया जाँच करें कि आपके कार्ट फॉर्म में कुंजी है

एप्लिकेशन / कोड / कोर / दाना / चेकआउट / नियंत्रक / CartController.php

+        if (!$this->_validateFormKey()) {
+            $this->_redirect('*/*/');
+            return;
+        }
+

एप्लिकेशन / कोड / कोर / दाना / कोर / हेल्पर / Http.php

-                if ($this->_getRequest()->getServer($var, false)) {
+                if ($var != 'REMOTE_ADDR' && $this->_getRequest()->getServer($var, false)) {

+        if (strpos($this->_remoteAddr, ',') !== false) {
+            $ipList = explode(',', $this->_remoteAddr);
+            $this->_remoteAddr = trim(reset($ipList));
+        }
+

एप्लिकेशन / कोड / कोर / दाना / कोर / मॉडल / सत्र / सार / Varien.php

+    const VALIDATOR_PASSWORD_CREATE_TIMESTAMP   = 'password_create_timestamp';

+    /**
+     * Use password creation timestamp in validator key
+     *
+     * @return bool
+     */
+    public function useValidateSessionPasswordTimestamp()
+    {
+        return true;
+    }
+

+        if ($this->useValidateSessionPasswordTimestamp()
+            && isset($validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP])
+            && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
+            && $validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP]
+            > $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] - $this->getCookie()->getLifetime()
+        ) {
+            return false;
+        }

+        if (isset($this->_data['visitor_data']['customer_id'])) {
+            $parts[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP] =
+                Mage::helper('customer')->getPasswordTimestamp($this->_data['visitor_data']['customer_id']);
+        }
+

एप्लिकेशन / कोड / कोर / दाना / ग्राहक / हेल्पर / Data.php

+    /**
+     * Get customer password creation timestamp or customer account creation timestamp
+     *
+     * @param $customerId
+     * @return int
+     */
+    public function getPasswordTimestamp($customerId)
+    {
+        /** @var $customer Mage_Customer_Model_Customer */
+        $customer = Mage::getModel('customer/customer')
+            ->setWebsiteId(Mage::app()->getStore()->getWebsiteId())
+            ->load((int)$customerId);
+        $passwordCreatedAt = $customer->getPasswordCreatedAt();
+
+        return is_null($passwordCreatedAt) ? $customer->getCreatedAtTimestamp() : $passwordCreatedAt;
+    }
+

एप्लिकेशन / कोड / कोर / दाना / ग्राहक / मॉडल / संसाधन / Customer.php

-        $customer->setPassword($newPassword);
+        $customer->setPassword($newPassword)->setPasswordCreatedAt(time());
+        $this->saveAttribute($customer, 'password_created_at');
app/code/core/Mage/Customer/controllers/AccountController.php

+                $customer->setPasswordCreatedAt(time());



-        if (!$this->getCustomerId() && $customer = $observer->getEvent()->getCustomer()) {
+        if ($customer = $observer->getEvent()->getCustomer()) {

> app/code/core/Mage/Log/Model/Visitor.php

    -        if (!$this->getCustomerId() && $customer = $observer->getEvent()->getCustomer()) {
    +        if ($customer = $observer->getEvent()->getCustomer()) {

एप्लिकेशन / कोड / कोर / दाना / अमेरिका / हेल्पर / Data.php

+
+    /**
+     * Validate ups type value
+     *
+     * @param $valueForCheck string ups type value for check
+     *
+     * @return bool
+     */
+    public function validateUpsType($valueForCheck) {
+        $result = false;
+        $sourceModel = Mage::getSingleton('usa/shipping_carrier_ups_source_type');
+        foreach ($sourceModel->toOptionArray() as $allowedValue) {
+            if (isset($allowedValue['value']) && $allowedValue['value'] == $valueForCheck) {
+                $result = true;
+                break;
+            }
+        }
+        return $result;
+    }
 }

cron.php

cron.php: cron.php फ़ाइल में अपवाद हैंडल

-Mage::app('admin')->setUseSessionInUrl(false);
+try {
+    Mage::app('admin')->setUseSessionInUrl(false);
+} catch (Exception $e) {
+    Mage::printException($e);
+    exit;
+}

lib / Varien / छवि / एडाप्टर / Gd2.php

GD2: वास्तविक माइम प्रकार लौटाएं।

+        header("Content-type: ".$this->getMimeTypeWithOutFileType());

+
+    /**
+     * Gives real mime-type with not considering file type field
+     *
+     * @return string
+     */
+    public function getMimeTypeWithOutFileType()
+    {
+        return $this->_fileMimeType;
+    }
 }

जे एस / tiny_mce / plugins / मीडिया / .htaccess

यदि आप अपाचे के बजाय नगनेक्स का उपयोग करते हैं, तो सुनिश्चित करें कि आप इस बदलाव की नकल करने के लिए अपने कॉन्फ़िगरेशन को अपडेट करते हैं।

+<IfModule mod_rewrite.c>
+    <Files moxieplayer.swf>
+        RewriteEngine on
+        RewriteCond %{QUERY_STRING} !^$
+        RewriteRule ^(.*)$ %{REQUEST_URI}? [R=301,L]
+    </Files>
+</IfModule>

एप्लिकेशन / डिजाइन / adminhtml / डिफ़ॉल्ट / डिफ़ॉल्ट / टेम्पलेट / system / शिपिंग / ups.phtml

+if (!in_array($storedOriginShipment, array_keys($orShipArr))) {
+    $storedOriginShipment = '';
+}

+if ($storedFreeShipment != '' && !in_array($storedFreeShipment, array_keys($defShipArr))) {
+    $storedFreeShipment = '';
+}

+if (!Mage::helper('usa')->validateUpsType($storedUpsType)) {
+    $storedUpsType = '';
+}

शिपिंग विधि नई जोड़ी गई / अद्यतन फाइलें हैं:

app/code/core/Mage/Usa/Helper/Data.php
app/code/core/Mage/Usa/Model/Shipping/Carrier/Abstract/Backend/Abstract.php
app/code/core/Mage/Usa/Model/Shipping/Carrier/Ups/Backend/Freemethod.php
app/code/core/Mage/Usa/Model/Shipping/Carrier/Ups/Backend/OriginShipment.php
app/code/core/Mage/Usa/Model/Shipping/Carrier/Ups/Backend/Type.php

एस्केपबुक फाइलें:

डाउनलोड करने योग्य उत्पाद फ्रंटएंड फाइलें: डाउनलोड करने योग्य उत्पाद का उपयोग करने वाला कोई भी व्यक्ति अपनी थीम फ़ाइलों में फ़ाइलों को अपडेट करें।

एप्लिकेशन / डिजाइन / दृश्यपटल / आधार / डिफ़ॉल्ट / टेम्पलेट / डाउनलोड / सूची / उत्पाद / links.phtml

कोड की जाँच करें

<dt><label<?php if ($_isRequired) echo ' class="required"' ?>><?php if ($_isRequired) echo '<em>*</em>' ?><?php echo
    > $this->getLinksTitle() ?></label></dt>

से बदलो

<dt><label<?php if ($_isRequired) echo ' class="required"' ?>><?php if ($_isRequired) echo '<em>*</em>' ?><?php echo
    > $this->escapeHtml($this->getLinksTitle()); ?></label></dt>

एप्लिकेशन / डिजाइन / दृश्यपटल / आधार / डिफ़ॉल्ट / टेम्पलेट / डाउनलोड / चेकआउट / गाड़ी / आइटम / default.phtml

कोड की जाँच करें

<dt><?php echo $this->getLinksTitle() ?></dt>

से बदलो

 <dt><?php echo $this->escapeHtml($this->getLinksTitle()); ?></dt>

एप्लिकेशन / डिजाइन / दृश्यपटल / आधार / डिफ़ॉल्ट / टेम्पलेट / डाउनलोड / बिक्री / आदेश / आइटम / रेंडरर / downloadable.phtml

कोड की जाँच करें

<dt><?php echo $this->getLinksTitle() ?></dt>

से बदलो

<dt><?php echo $this->escapeHtml($this->getLinksTitle()); ?></dt>

एप्लिकेशन / डिजाइन / दृश्यपटल / डिफ़ॉल्ट / iphone / टेम्पलेट / डाउनलोड / चेकआउट / गाड़ी / आइटम / default.phtml

कोड की जाँच करें

<dt><?php echo $this->getLinksTitle() ?></dt>

से बदलो

<dt><?php echo $this->escapeHtml($this->getLinksTitle()); ?></dt>

एप्लिकेशन / डिजाइन / सामने / डिफ़ॉल्ट / iPhone / टेम्पलेट / डाउनलोड करने योग्य / चेकआउट / onepage / समीक्षा / आइटम ।phtml चेक कोड

`<dt><?php echo $this->getLinksTitle() ?></dt>`

से बदलो

`<dt><?php echo $this->escapeHtml($this->getLinksTitle()); ?></dt>`

ऐप / डिज़ाइन / फ्रंटएंड / rwd / डिफ़ॉल्ट / टेम्पलेट / डाउनलोड करने योग्य / चेकआउट / कार्ट / आइटम / default.phtml चेक कोड

`<dt><?php echo $this->getLinksTitle() ?></dt>`

से बदलो

`<dt><?php echo $this->escapeHtml($this->getLinksTitle()); ?></dt>`

एप्लिकेशन / डिजाइन / दृश्यपटल / RWD / डिफ़ॉल्ट / टेम्पलेट / डाउनलोड / चेकआउट / onepage / समीक्षा / item.phtml

कोड की जाँच करें

<dt><?php echo $this->getLinksTitle() ?></dt>

से बदलो

<dt><?php echo $this->escapeHtml($this->getLinksTitle()); ?></dt>

एप्लिकेशन / डिजाइन / दृश्यपटल / RWD / डिफ़ॉल्ट / टेम्पलेट / डाउनलोड / बिक्री / आदेश / आइटम / रेंडरर / downloadable.phtml

कोड की जाँच करें

<dt><?php echo $this->getLinksTitle() ?></dt>

से बदलो

<dt><?php echo $this->escapeHtml($this->getLinksTitle()); ?></dt>

अन्य एस्केपबुक फाइलें:

एप्लिकेशन / कोड / कोर / दाना / Adminhtml / ब्लॉक / सूची / उत्पाद / कम्पोजिट / fieldset / options.php

+        if (!empty($option['file_extension'])) {
+            $option['file_extension'] = $this->escapeHtml($option['file_extension']);
+        }

एप्लिकेशन / कोड / कोर / दाना / Adminhtml / ब्लॉक / सूची / उत्पाद / संपादित करें / टैब / विकल्प / option.php

-                    $value['file_extension'] = $option->getFileExtension();
+                    $value['file_extension'] = $this->escapeHtml($option->getFileExtension());

एप्लिकेशन / डिजाइन / दृश्यपटल / उद्यम / डिफ़ॉल्ट / टेम्पलेट / सेमी / पदानुक्रम / pagination.phtml

-    <li><a title="<?php echo $this->escapeHtml($node->getLabel())?>" href="<?php echo $node->getUrl()?>"><?php echo $this->getNodeLabel($node)?></a></li>

+    <li><a title="<?php echo $this->escapeHtml($node->getLabel())?>" href="<?php echo $node->getUrl()?>"><?php echo $this->escapeHtml($this->getNodeLabel($node)); ?></a></li>

app / code / core / Mage / Checkout / नियंत्रकों / CartController.php, चेकआउट में किस पृष्ठ पर आमतौर पर आपको फॉर्म-की की त्रुटि दिखाई देती है?
आइकन

1
मुझे किसी भी प्रकार की त्रुटि दिखाई नहीं देती है। यदि कोई डिफ़ॉल्ट / टेम्प्लेट / चेकआउट / कार्ट.फ़िल्टेम फ़ाइल और छूटे हुए फ़ॉर्म को ओवरराइड करता है। यह त्रुटि के माध्यम से पुनर्निर्देशित मुख पृष्ठ के माध्यम से होगा। यह एक चेकलिस्ट है। यदि कोई त्रुटि होती है, तो कृपया प्रपत्र कुंजी की जाँच करें :)। सवाल पूछने के लिए धन्यवाद :)
राम चंद्रन एम

1
मुझे नहीं लगता कि यह सभी पैच यहाँ पोस्ट करने के लिए बहुत उपयोगी है। मुझे वास्तविक संभावित मुद्दों में अधिक दिलचस्पी है ...
7ochem

1
आपकी टिप्पणी के लिए धन्यवाद। मुझे लगता है कि यह दूसरों के लिए उपयोगी है क्योंकि यह खोजना आसान है कि फाइलें क्या बदली हैं और कोर कोड क्या हैं। उदाहरण ऐप / डिज़ाइन / फ्रंटएंड / आरडब्ल्यूडी / डिफ़ॉल्ट / टेम्पलेट / डाउनलोड करने योग्य / चेकआउट / ऑनएपेज / रिव्यू / आइटम.phtml मान लें कि हम आपके विषय में ओवरराइड करते हैं बस कोड ईज़ीली भी बदल दें यह अधिक है चेकलिस्ट की तरह।
राम चंद्रन M

8

अतिभारित filterपद्धति में संशोधन Zend_Filter_PregReplaceभोला है, और मानता है कि $this->_matchPatternहमेशा एक स्ट्रिंग है। यह संपत्ति बाद में पहली दलील के रूप में प्रदान की जाती है preg_replace। वास्तव में, एक सरणी भी पूरी तरह से मान्य तर्क है। यह तथ्य वास्तव में कई मुख्य Zend_Filterवर्गों (जैसे Zend_Filter_Word_SeparatorToCamelCase) द्वारा उपयोग किया जाता है । तो किसी भी एक्सटेंशन / कोड की शाखा जो इस फिल्टर का उपयोग करती है या इसमें से एक के लिए एक सरणी तर्क के साथ डेरिवेटिव है, _matchPatternफेंकना शुरू कर देगाWarning: substr() expects parameter 1 to be a string, array given

इसका क्या करना चाहिए इसका एक क्रूड उदाहरण कुछ इस तरह से होगा:

/**
 * Perform regexp replacement as filter
 *
 * @param  string $value
 * @return string
 */
public function filter($value)
{
    if ($this->_matchPattern == null) {
        #require_once 'Zend/Filter/Exception.php';
        throw new Zend_Filter_Exception(get_class($this) . ' does not have a valid MatchPattern set.');
    }

    $patterns = is_array($this->_matchPattern) ? $this->_matchPattern : array($this->_matchPattern);
    foreach ($patterns as $pattern) {
        if ($this->_containsEvalModifier($pattern)) {
            throw new Zend_Filter_Exception(get_class($this) . ' uses deprecated modifier "/e".');
        }
    }

    return preg_replace($this->_matchPattern, $this->_replacement, $value);
}

/**
 * Check if the modifiers contains the eval flag.
 *
 * @param  string $value
 * @return bool
 */
protected function _containsEvalModifier($pattern)
{
    $firstDelimiter = substr($pattern, 0, 1);
    $partsOfRegex = explode($firstDelimiter, $pattern);
    $modifiers = array_pop($partsOfRegex);

    return ($modifiers != str_replace('e', '', $modifiers));
}

हालाँकि मैंने अभी तक इसका कोई पूर्ण परीक्षण नहीं किया है।

संपादित करें: यह ध्यान देने योग्य है, कि ऊपर प्रस्तावित समाधान को त्रुटियों को रोकने के लिए, कार्यान्वयन तकनीकी रूप से अभी भी थोड़ा सा भोला है और झूठी सकारात्मकता से ग्रस्त है। यह मानता है कि मॉडिफ़ायर से पैटर्न को अलग करने वाला रेगेक्स सीमांकक स्ट्रिंग की शुरुआत में एक जैसा है। PHP के विभिन्न ब्रैकेट स्टाइल सीमांकक का समर्थन करने के बाद तकनीकी रूप से ऐसा नहीं होता है। इसलिए मान्य इनपुट {hello}isयह निर्धारित करेगा कि संशोधक hello}is(वास्तविक संशोधक के बजाय is) हैं और इस प्रकार एक अपवाद को फेंक देंगे, भले ही पैटर्न में वास्तव में eसंशोधक शामिल नहीं है ।


5

1.7.0.2 वर्जन इश्यू: पैच इंस्टॉल करने के बाद और एक पेज चेकआउट (जेनेरिक Magento चेकआउट) पर जाएं, यह त्रुटि प्राप्त करें

पार्स त्रुटि: वाक्यविन्यास त्रुटि, अप्रत्याशित

app / code / core / Mage / Checkout / Model / Type / Onepage.php ऑन लाइन 691

पैच को उलटने से, त्रुटि गायब हो जाती है।

इस सवाल को गहराई से देखते हुए, मैंने पाया है कि पैच ने onepage.php फ़ाइल में निम्न पंक्ति जोड़ दी है।

$passwordCreatedTime = $this->_checkoutSession->getData('_session_validator_data')['session_expire_timestamp']
            - Mage::getSingleton('core/cookie')->getLifetime();
        $customer->setPasswordCreatedAt($passwordCreatedTime);

समाधान: @FabianSchmengler का धन्यवाद

PHP संस्करण 5.4 और ऊपर अद्यतन!


मैं भी पैच मूल लागू कर रहा हूँ यह $ passwordCreatedTime = $ इस -> _ चेकआउट सत्र-> getData ('_ session_validator_data')] ['session_expire_timestamp' - Mage :: getSingleton ('core / कुकी') -> getLifetime (); अगली पंक्ति (नई लाइन बनाई / जोड़ी गई) - दाना :: getSingleton ('कोर / कुकी') -> getLifetime (); समस्या का कारण बना
राम चंद्र एम।

@ रामचंद्रनम यप! आपको समान PARSE त्रुटि मिल रही है? आप किस संस्करण का उपयोग कर रहे हैं?
आइकन

1
हाँ, मैं एक अन्य परियोजना की जाँच करूँगा और अधिक विस्तार प्रदान करूँगा Ans :)
राम चंद्रन एम।

2
@ यदि PHP PHP संगतता के लिए पैच था। मैंने लंबे समय तक किसी भी 1.7 इंस्टॉलेशन को नहीं छुआ, लेकिन उम्मीद है कि यह 5.6 पर भी काम करेगा, इसे आज़माएं।
फैबियन शेंगलर

1
@ आप कुछ समय के लिए पदावनति के नोटिस को अनदेखा कर सकते हैं, यह तब प्रासंगिक हो जाएगा जब आप PHP 7 में अपडेट करेंगे
Fabian Schmengler

2

ज्ञात मुद्दा :-

यदि आपका कस्टम कोड या एक्सटेंशन उपयोग कर रहा है Zend/Filter/PregReplace.ph संशोधक ई के साथ पी , तो यह अब संभव आरसीई मुद्दों के कारण एक त्रुटि लौटाएगा।

यह पैच सुरक्षा के नीचे है।

1) अतिरिक्त व्यवस्थापक सत्र सत्यापन पासवर्ड परिवर्तन

+++ app/code/core/Mage/Admin/Model/User.php

+            $sessionUser = $this->getSession()->getUser();
+            if ($sessionUser && $sessionUser->getId() == $this->getId()) {
+                $this->getSession()->setUserPasswordChanged(true);
+            }

और फिर

+    /**
+     * @return Mage_Admin_Model_Session
+     */
+    protected function getSession()
+    {
+        return  Mage::getSingleton('admin/session');
+    }
+

class Mage_Admin_Model_User

+        $oldPassword = $this->getPassword();
     $this->setId(null);
     $this->load($id);
+        $isUserPasswordChanged = $this->getSession()->getUserPasswordChanged();
+        if ($this->getPassword() !== $oldPassword && !$isUserPasswordChanged) {
+            $this->setId(null);
+        } elseif ($isUserPasswordChanged) {
+            $this->getSession()->setUserPasswordChanged(false);
+        }

2) फ़ाइल एक्सटेंशन सत्यापन

app/code/core/Mage/Adminhtml/Block/Catalog/Product/Composite/Fieldset/Options.php

+        if (!empty($option['file_extension'])) {
+            $option['file_extension'] = $this->escapeHtml($option['file_extension']);
+        }

app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Options/Option.php app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Options/Option.php

-                    $value['file_extension'] = $option->getFileExtension();
+                    $value['file_extension'] = $this->escapeHtml($option->getFileExtension());

app/code/core/Mage/Catalog/Model/Product.php

+                        if (!empty($option['file_extension'])) {
+                            $fileExtension = $option['file_extension'];
+                            if (0 !== strcmp($fileExtension, Mage::helper('core')->removeTags($fileExtension))) {
+                                Mage::throwException(Mage::helper('catalog')->__('Invalid custom option(s).'));
+                            }
+                        }

3) एक्सएसएस के लिए एचटीएमएल बच गया

+++ app/code/core/Mage/Adminhtml/Block/Widget/Grid/Column/Filter/Datetime.php

-            return $value;
+            return $this->escapeHtml($value);
     }

-        return parent::getEscapedValue($index);
+        return $this->escapeHtml(parent::getEscapedValue($index));

app/design/frontend/base/default/template/downloadable/catalog/product/links.phtml

-        <dt><label<?php if ($_isRequired) echo ' class="required"' ?>><?php if ($_isRequired) echo '<em>*</em>' ?><?php echo $this->getLinksTitle() ?></label></dt>
+        <dt><label<?php if ($_isRequired) echo ' class="required"' ?>><?php if ($_isRequired) echo '<em>*</em>' ?><?php echo $this->escapeHtml($this->getLinksTitle()); ?></label></dt>

app/design/frontend/base/default/template/downloadable/checkout/cart/item/default.phtml

-            <dt><?php echo $this->getLinksTitle() ?></dt>
+            <dt><?php echo $this->escapeHtml($this->getLinksTitle()); ?></dt>

app/design/frontend/base/default/template/downloadable/checkout/onepage/review/item.phtml

-            <dt><?php echo $this->getLinksTitle() ?></dt>
+            <dt><?php echo $this->escapeHtml($this->getLinksTitle()); ?></dt>

app/design/frontend/base/default/template/downloadable/sales/order/items/renderer/downloadable.phtml

-            <dt><?php echo $this->getLinksTitle() ?></dt>
+            <dt><?php echo $this->escapeHtml($this->getLinksTitle()); ?></dt>

app/design/frontend/default/iphone/template/downloadable/checkout/onepage/review/item.phtml

-                <dt><?php echo $this->getLinksTitle() ?></dt>
+                <dt><?php echo $this->escapeHtml($this->getLinksTitle()); ?></dt>

app/design/frontend/rwd/default/template/downloadable/checkout/cart/item/default.phtml

-            <dt><?php echo $this->getLinksTitle() ?></dt>
+            <dt><?php echo $this->escapeHtml($this->getLinksTitle()); ?></dt>

app/design/frontend/rwd/default/template/downloadable/checkout/onepage/review/item.phtml

-            <dt><?php echo $this->getLinksTitle() ?></dt>
+            <dt><?php echo $this->escapeHtml($this->getLinksTitle()); ?></dt>

app/design/frontend/rwd/default/template/downloadable/sales/order/items/renderer/downloadable.phtml

-            <dt><?php echo $this->getLinksTitle() ?></dt>
+            <dt><?php echo $this->escapeHtml($this->getLinksTitle()); ?></dt>

4) लेआउट अपडेट की जाँच के लिए एक्सपीथ एक्सप्रेशन

app/code/core/Mage/Adminhtml/Model/LayoutUpdate/Validator.php

+    /**
+     * XPath expression for checking layout update
+     *
+     * @var array
+     */
+    protected $_disallowedXPathExpressions = array(
+        '*//template',
+        '*//@template',
+        '//*[@method=\'setTemplate\']',
+        '//*[@method=\'setDataUsingMethod\']//*[text() = \'template\']/../*'
+    );
+

Mage_Adminhtml_Model_LayoutUpdate_Validator

-        if ($templatePaths = $value->xpath('*//template | *//@template | //*[@method=\'setTemplate\']/*')) {
+        if ($templatePaths = $value->xpath($this->_getXpathValidationExpression())) {

Mage_Adminhtml_Model_LayoutUpdate_Validator

+    /**
+     * Returns xPath for validate incorrect path to template
+     *
+     * @return string xPath for validate incorrect path to template
+     */
+    protected function _getXpathValidationExpression() {
+        return implode(" | ", $this->_disallowedXPathExpressions);
+    }
+



+    /**
+     * Returns xPath for validate incorrect path to template
+     *
+     * @return string xPath for validate incorrect path to template
+     */
+    protected function _getXpathValidationExpression() {
+        return implode(" | ", $this->_disallowedXPathExpressions);
+    }
+

app/code/core/Mage/Catalog/Model/Resource/Category/Tree.php

+            if (!preg_match("#^[0-9\/]+$#", $item['path'])) {
+                $item['path'] = '';
+            }

5) किसी वर्ग को बचाते समय प्रमाणित एसक्यूएल इंजेक्शन

app/code/core/Mage/Adminhtml/controllers/Catalog/CategoryController

+            if (isset($data['general']['path'])) {
+                unset($data['general']['path']);
+            }

6) उत्पाद को मान्य app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php

+                $product->validate();

7) mimetype app/code/core/Mage/Adminhtml/controllers/Cms/Wysiwyg/ImagesController.php

+            $this->getResponse()->setHeader('Content-type', $image->getMimeTypeWithOutFileType());

app/code/core/Mage/Adminhtml/controllers/Cms/WysiwygController.php

+        $this->getResponse()->setHeader('Content-type', $image->getMimeTypeWithOutFileType());

lib/Varien/Image/Adapter/Gd2.php

-        header("Content-type: ".$this->getMimeType());
+        header("Content-type: ".$this->getMimeTypeWithOutFileType());


+
+    /**
+     * Gives real mime-type with not considering file type field
+     *
+     * @return string
+     */
+    public function getMimeTypeWithOutFileType()
+    {
+        return $this->_fileMimeType;
+    }

8) ग्राहक पासवर्ड क्रिएट app/code/core/Mage/Adminhtml/controllers/CustomerController.php

+                    $customer->setPasswordCreatedAt(time());

app/code/core/Mage/Checkout/Model/Api/Resource/Customer.php

+        $customer->setPasswordCreatedAt(time());

app/code/core/Mage/Checkout/Model/Type/Onepage.php

+        $passwordCreatedTime = $this->_checkoutSession->getData('_session_validator_data')['session_expire_timestamp']
+            - Mage::getSingleton('core/cookie')->getLifetime();
+        $customer->setPasswordCreatedAt($passwordCreatedTime);

app/code/core/Mage/Core/Model/Session/Abstract/Varien.php

+    const VALIDATOR_PASSWORD_CREATE_TIMESTAMP   = 'password_create_timestamp';


+    /**
+     * Use password creation timestamp in validator key
+     *
+     * @return bool
+     */
+    public function useValidateSessionPasswordTimestamp()
+    {
+        return true;
+    }


+        if ($this->useValidateSessionPasswordTimestamp()
+            && isset($validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP])
+            && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
+            && $validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP]
+            > $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] - $this->getCookie()->getLifetime()
+        ) {
+            return false;
+        }

app/code/core/Mage/Customer/Helper/Data.php

+    /**
+     * Get customer password creation timestamp or customer account creation timestamp
+     *
+     * @param $customerId
+     * @return int
+     */
+    public function getPasswordTimestamp($customerId)
+    {
+        /** @var $customer Mage_Customer_Model_Customer */
+        $customer = Mage::getModel('customer/customer')
+            ->setWebsiteId(Mage::app()->getStore()->getWebsiteId())
+            ->load((int)$customerId);
+        $passwordCreatedAt = $customer->getPasswordCreatedAt();
+
+        return is_null($passwordCreatedAt) ? $customer->getCreatedAtTimestamp() : $passwordCreatedAt;
+    }
+

app/code/core/Mage/Customer/Model/Resource/Customer.php

-        $customer->setPassword($newPassword);
+        $customer->setPassword($newPassword)->setPasswordCreatedAt(time());
     $this->saveAttribute($customer, 'password_hash');
+        $this->saveAttribute($customer, 'password_created_at');

app/code/core/Mage/Customer/controllers/AccountController.php

+                $customer->setPasswordCreatedAt(time());

Mage_Customer_AccountController

+            $customer->setPasswordCreatedAt(time());
         $customer->save();

``

+                $customer->setPasswordCreatedAt(time());

app/code/core/Mage/Log/Model/Visitor.php

-        if (!$this->getCustomerId() && $customer = $observer->getEvent()->getCustomer()) {
+        if ($customer = $observer->getEvent()->getCustomer()) {

9) यूपीएस परिवर्तन

app/code/core/Mage/Usa/Helper/Data.php

+
+    /**
+     * Validate ups type value
+     *
+     * @param $valueForCheck string ups type value for check
+     *
+     * @return bool
+     */
+    public function validateUpsType($valueForCheck) {
+        $result = false;
+        $sourceModel = Mage::getSingleton('usa/shipping_carrier_ups_source_type');
+        foreach ($sourceModel->toOptionArray() as $allowedValue) {
+            if (isset($allowedValue['value']) && $allowedValue['value'] == $valueForCheck) {
+                $result = true;
+                break;
+            }
+        }
+        return $result;
+    }

यूपीएस के लिए एडेड फाइलें

`app/code/core/Mage/Usa/Model/Shipping/Carrier/Abstract/Backend/Abstract.php` 
`app/code/core/Mage/Usa/Model/Shipping/Carrier/Ups/Backend/Freemethod.php`
`app/code/core/Mage/Usa/Model/Shipping/Carrier/Ups/Backend/OriginShipment.php`
`app/code/core/Mage/Usa/Model/Shipping/Carrier/Ups/Backend/Type.php`

इस नई फंक्शनलोइलिटी के लिए सेटिंग जोड़ा गया

app/code/core/Mage/Usa/etc/system.xml

+                            <backend_model>usa/shipping_carrier_ups_backend_freemethod</backend_model>

843 लाइन

+                            <backend_model>usa/shipping_carrier_ups_backend_originShipment</backend_model>

886

+                            <backend_model>usa/shipping_carrier_ups_backend_type</backend_model>

app/design/adminhtml/default/default/template/system/shipping/ups.phtml

+if (!in_array($storedOriginShipment, array_keys($orShipArr))) {
+    $storedOriginShipment = '';
+}
+if ($storedFreeShipment != '' && !in_array($storedFreeShipment, array_keys($defShipArr))) {
+    $storedFreeShipment = '';
+}
+if (!Mage::helper('usa')->validateUpsType($storedUpsType)) {
+    $storedUpsType = '';
+}
 ?>

10) Zend वर्ग जोड़ा गया

`app/code/core/Zend/Filter/PregReplace.php`
`app/code/core/Zend/Validate/EmailAddress.php`

1> 1) बंडल उत्पाद सत्यापन

app/design/adminhtml/default/default/template/bundle/product/edit/bundle/option.phtml

+    <?php $_selection->setSku($this->escapeHtml($_selection->getSku())); ?>

12) cron.php में ट्रायल कैच में व्यवस्थापक सत्र

-Mage::app('admin')->setUseSessionInUrl(false);
+try {
+    Mage::app('admin')->setUseSessionInUrl(false);
+} catch (Exception $e) {
+    Mage::printException($e);
+    exit;
+}

2

पैच के हिस्से की तरह लग रहा है htmlEsuring सभी "getLinksTitle ()"। लेकिन वे निम्नलिखित फाइलों को भूल गए (यह 1.8.1 पर आधारित है)।

app/design/frontend/base/default/template/downloadable/checkout/multishipping/item/downloadable.phtml

app/design/frontend/base/default/template/downloadable/email/order/items/creditmemo/downloadable.phtml

app/design/frontend/base/default/template/downloadable/email/order/items/invoice/downloadable.phtml

app/design/frontend/base/default/template/downloadable/email/order/items/order/downloadable.phtml

app/design/frontend/base/default/template/downloadable/sales/order/creditmemo/items/renderer/downloadable.phtml

app/design/frontend/base/default/template/downloadable/sales/order/invoice/items/renderer/downloadable.phtml

app/design/frontend/default/iphone/template/downloadable/sales/order/creditmemo/items/renderer/downloadable.phtml

app/design/frontend/default/iphone/template/downloadable/sales/order/invoice/items/renderer/downloadable.phtml

2

पैच वेनिला मैगेंटो सीई 1.8.0.0 पर काम नहीं करता है

अद्यतन: नीचे समाधान जोड़ा गया।

मुसीबत:

file app/design/frontend/base/default/template/downloadable/sales/order/items/renderer/downloadable.phtml
Hunk #1 FAILED at 54.

लागू पिछले पैच:

  • APPSEC-212
  • Supee-2619
  • Supee-2725
  • Supee-3941
  • Supee-5344
  • Supee-5994
  • Supee-6237
  • Supee-6285
  • Supee-6482
  • Supee-6788
  • Supee-7405
  • Supee-7405v.1.1
  • Supee-7616
  • Supee-8167
  • Supee-8788v2
  • Supee-8967
  • Supee-9652
  • Supee-9767v2
  • Supee-10,336
  • Supee-10,266
  • Supee-10,415
  • Supee-10570v2

समाधान

पैच फ़ाइल को संपादित करके फिक्स्ड। के लिए पैच downloadable.phtmlसे एक के लिए पैच बदल दियाv1.7.0.2 को मूल पैच फ़ाइल में बदल दिया गया, ये लाइनें 1854-1862 हैं।

यह मुख्य रूप से फ़ाइल में इंडेंटेशन के कारण है। के लिए परिवर्तन के रूप में downloadable.phtmlमें V1.7.0.2अधिक इंडेंट की है।

समाधान २

मुझे एक समान समस्या थी, लेकिन मैं एक संपादक में मूल फ़ाइल को फिर से सहेजने में सक्षम था, जिसने लाइन को यूनिक्स शैली LF के लिए समाप्त कर दिया, न कि विंडोज शैली CRLF के या मैक सीआर के


1

मैट एंटली के संदर्भ में, शायद उन्होंने इसकी वजह से SUPEE-10570v2 को शामिल नहीं किया

Magento को हाल ही में पैच SUPEE-10570> और Magento संस्करणों 1.9.3.8/1.14.3.8 दोनों के साथ एक समस्या के बारे में सूचित किया गया था, जिसके परिणामस्वरूप चेकआउट के दौरान पंजीकरण करने का प्रयास करने पर ग्राहकों की अक्षमता को पूरा किया जा सकता है। Magento अब एक अद्यतन पैच (SUPEE-10570v2) प्रदान कर रहा है कि> अब इस समस्या का कारण नहीं बनता है। ध्यान दें, हालांकि, यह नया पैच अब> दो कम जोखिम वाले सत्र से संबंधित सुरक्षा से संबंधित सुरक्षा मुद्दों से बचाता है जो पैच SUPEE-10570 के विरुद्ध सुरक्षित हैं। https://magento.com/security/patches/supee-10570

जहां तक ​​मुझे पता है कि चेकआउट बग बहुत आम नहीं था और इसलिए उन्होंने SUPEE-10570 के साथ रहने का फैसला किया जो दो कम जोखिम वाले सुरक्षा मुद्दों से बचाता है ?!


+1 यह इसकी सबसे अधिक संभावना है, फिर भी यह ध्यान देने योग्य है कि यदि उपयोगकर्ता अपग्रेड कर रहे हैं और आवेदन करना है SUPEE-10570v2तो उन्हें इसे फिर से लागू करना होगा।
मैट एंटली

जैसा कि पीटर ओ'कैलाघन ने कहा, 10570v2 से परिवर्तन 10752 से वापस हो गए हैं, इसलिए पूर्व को शामिल करने की कोई आवश्यकता नहीं है। चूंकि 1.9.3.9 के लिए कोई 10570v2 नहीं है, इसलिए आपको कुछ भी लागू नहीं करना चाहिए। पूरा तर्क कमजोर है: क्यों Magento अपने 1.9.3.9 शाखा को अन्य सभी की तुलना में एक अलग आधार पर रखना चाहिए? उन्होंने यह भी कहा कि वे प्रत्येक भविष्य के रिलीज को आधार बनाएंगे और 10570v2 पर पैच करेंगे।
पोंग

पीटर और पोंग टिप्पणी के लिए धन्यवाद। मेरा उत्तर हटा दिया है क्योंकि यह आप दोनों के द्वारा कहा गया भ्रामक है। यह मेरा इरादा नहीं था, बस कुछ ऐसा नहीं था जब मैं इसे लिखता था और कुछ ऐसा था जिसे मैंने कुछ समय के लिए देखा था SUPEE-10752और बंदूक को थोड़ा उछाला था। फिर से, टिप्पणी के लिए धन्यवाद।
मैट एंटली जूल

1

पैच वेनिला मैगेंटो सीई 1.6.0.0 पर काम नहीं करता है

अद्यतन: नीचे समाधान जोड़ा गया।

समस्या:

file app/code/core/Mage/Admin/Model/User.php
Hunk #1 FAILED at 127.
...
file app/code/core/Mage/Customer/controllers/AccountController.php
Hunk #2 FAILED at 812.

लागू पिछले पैच:

  • APPSEC-212
  • Supee-2631
  • Supee-2725
  • Supee-5344
  • Supee-5994
  • Supee-6237
  • Supee-6285
  • Supee-6482
  • Supee-6788
  • Supee-7405
  • Supee-7405v.1.1
  • Supee-8167
  • Supee-8788v2
  • Supee-8967
  • Supee-9652
  • Supee-9767v2
  • Supee-10,266
  • Supee-10,415
  • Supee-10570v2
  • Supee-10752

हल किया

मैंने पैच फ़ाइल को बदलकर इस समस्या को ठीक किया है। मैंने उन खंडों को प्रतिस्थापित कर दिया, जो v1.5.1.0 के लिए पैच से तदनुसार लोगों को समस्याएं देते हैं। मूल पैच फ़ाइल में ये रेखाएँ 167-177 और 663-670 हैं।


1

SUPE-10752 को लागू करने के बाद EE v1.14.2.4 में, मुझे उस समस्या को ठीक करने के लिए निम्नलिखित पैच को लागू करना था, जहां चेकआउट सफलता पृष्ठ के बजाय मुखपृष्ठ पर पुनर्निर्देशित करता है:

फ़ाइल: अमान्य_session_fix-2018-03-14-05-10-19.patch

diff --git a/app/code/core/Mage/Core/Model/Session/Abstract/Varien.php b/app/code/core/Mage/Core/Model/Session/Abstract/Varien.php
index 59b3ea8..35155f1 100644
--- a/app/code/core/Mage/Core/Model/Session/Abstract/Varien.php
+++ b/app/code/core/Mage/Core/Model/Session/Abstract/Varien.php
@@ -485,7 +485,7 @@ class Mage_Core_Model_Session_Abstract_Varien extends Varien_Object
             && isset($validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP])
             && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
             && $validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP]
-            > $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] - $this->getCookie()->getLifetime()
+            > $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP]
         ) {
             return false;
         }

उपरोक्त सुधार https://magento.com/tech-resources/download के तहत SUPEE-10570 > अमान्य_session_fix.patch (0 MB) में पाया गया है


यह सीई 1.9.3.6 के साथ भी ऐसा ही करता है जब php <5.5 है, फिक्स के लिए धन्यवाद
गनजन मेहता

1

मुझे इस पैच के बाद एक समस्या का सामना करना पड़ा है। मैं "यूपीएस टाइप" "यूनाइटेड पार्सल सर्विस एक्सएमएल" के लिए "फ्री मेथड" सेट नहीं कर सकता। जब कोई भी विधि "फ्री मेथड" ड्रॉप-डाउन में चुनी जाती है, तो Magento एक एरर फेंकता है। त्रुटि: " फ़ील्ड" अप्स फ्री विधि "का गलत मूल्य है। "

किसी को भी एक ही मुद्दे का सामना करना पड़ा है और समाधान मिल गया है?

अग्रिम में धन्यवाद!


0

1.6 पर, ups.ttml पैच टूट गया है। यह $ storeOriginShipment, $ storeFreeShipment को संदर्भित कर रहा है, जिसमें 1.6 में टाइपो ($ stroredOriginShipment और $ stroredFreeShipment) है। इसके अलावा यह $ storeUpsType का संदर्भ देता है जो 1.6 में बिल्कुल भी मौजूद नहीं है।


0

हमने 1.9.1.0 और 1.9.2.4 को एक समस्या का सामना किया है (दूसरों पर परीक्षण नहीं किया है)। यह हमारी सभी परियोजनाओं पर दिखाई नहीं देता है, लेकिन यह उनमें से कई पर दोहराया गया है। हमें लगता है कि यह उन परियोजनाओं को प्रभावित कर सकता है जिनकी किसी समय पर SUPEE-10570v1 स्थापित थी।

पैच लगाने के बाद, यदि कोई उपयोगकर्ता लॉग इन करता है, तो वे अपने अकाउंट पेज को पूरी तरह से ठीक देखेंगे। हालांकि, यदि वे साइट पर किसी अन्य पेज पर लौटने की कोशिश करते हैं, तो पेज जवाब देना बंद कर देगा और वे खाली स्क्रीन या 502 बैड गेटवे देखेंगे। यह PHP एक अनंत लूप में जाने के कारण है और या तो इसकी .ini सेटिंग्स द्वारा रोका जा रहा है या बंद किया जा रहा है।

मैं खुदाई करने के लिए है कि समस्या लाइन पर एक अनंत प्रत्यावर्तन कि भार है प्रबंधित किया है $customerमें \app\code\core\Mage\Customer\Helper\Data.php, getPasswordTimestamp()

$customer = Mage::getModel('customer/customer')
        ->setWebsiteId(Mage::app()->getStore()->getWebsiteId())
        ->load((int)$customerId);

अनंत पुनरावृत्ति के स्टैक ट्रेस को देखते समय, यह बार-बार इस में वापस लूप करता रहता है। किसी तरह, यह विधि ->load()को बुलावा लगता है getPasswordTimestamp()

Https://magento.stackexchange.com/a/235984/67252 में दिया गया वर्कअर्न ठीक काम करता है, लेकिन मैं जानना चाहूंगा कि क्या हो रहा है।


0

पैच SUPEE 10752 को लागू करने के बाद, रजिस्टर और चेकआउट होमपेज पर सफलता पृष्ठ ले रहा है। कोई सुझाव?


-1

हमने SUPEE-10752 और संकलन करने के बाद / चेकआउट / * पर एक खाली पृष्ठ देखा

संस्करण: 1.9.1.0

ट्रिगर करने की स्थिति: SUPEE-10752 + कंपाइलर + ग्राहक के रूप में लॉगिन करने में सक्षम करें, फिर विज़िट / चेकआउट / * करें

बस स्पष्ट करने के लिए: निष्क्रिय संकलक के साथ सभी चीजें अच्छी तरह से चली गईं, सक्रिय संकलक के साथ हम केवल एक खाली कार्ट पेज देख सकते हैं जब बिना किसी लॉग प्रविष्टियों के लॉग इन किया गया था (सभी संभावित लॉग और डेवलपर मोड को सक्रिय करने के बाद भी)।

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