Güvenlik Düzeltme Eki SUPEE-10752 - Olası sorunlar mı var?


14

Magento 1 için 25 APPSEC sorununu ele alan yeni bir güvenlik yaması çıktı

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

Bu yamayı uygularken hangi genel sorunlara dikkat etmelisiniz?

SUPEE-10752, Magento Commerce 1.14.3.9 ve Açık Kaynak 1.9.3.9, kimliği doğrulanmış Yönetici kullanıcı uzaktan kod yürütülmesini (RCE), siteler arası istek sahtekarlığını (CSRF) ve diğer güvenlik açıklarını kapatmaya yardımcı olan birden fazla güvenlik geliştirmesi içerir.

1.14.3.9 ve 1.9.3.9 sürümlerindeki tüm değişikliklere ilişkin bilgiler Magento Commerce ve Magento Open Source sürüm notlarında mevcuttur.

Aşağıdaki Magento sürümleri için yamalar ve yükseltmeler mevcuttur:

Magento Commerce 1.9.0.0-1.14.3.9: SUPEE-10752 veya Magento Commerce 1.14.3.9 sürümüne yükseltme.

Magento Açık Kaynak 1.5.0.0-1.9.3.9: SUPEE-10752 veya Magento Açık Kaynak 1.9.3.9'a yükseltin.


Burada ayrıntılı olarak karşılaşılan sorun - magento.stackexchange.com/questions/248229/…
Shrenik

Yanıtlar:


19

Magento'nun Resmi Belgelerinde Bahsedildiği üzere :

SUPEE-10752 düzeltme ekinin yüklenmesi sırasında oluşan çakışmalara çoğunlukla önceki düzeltme ekinin sürüm 1'inin ( SUPEE-10570v1 ) yüklenmesi neden olur .

Lütfen yeni SUPEE-10752'yi takmadan önce SUPEE-10570v1'i çıkardığınızdan ve SUPEE-10570v2'yi kurduğunuzdan emin olun .


11

Aşağıdaki dosyalar yama uygulandıktan sonra değiştirilir / oluşturulur

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

EE Edition için CE dışında aşağıdaki dosyalar eklenir

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

Uygulama / kod / çekirdek / Mage / Yönetici / Modeli / 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');
+    }
+

Uygulama / kod / çekirdek / Mage / Adminhtml / Blok / Araç / Tablo / Sütun / Filtre / 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));
     }
-
 }

Uygulama / kod / çekirdek / Mage / Adminhtml / kontrol / Katalog / CategoryController.php

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

Uygulama / kod / çekirdek / Mage / Adminhtml / kontrol / Katalog / ProductController.php

+                $product->validate();

Uygulama / kod / çekirdek / Mage / Adminhtml / kontrol / Cms / WYSIWYG / ImagesController.php

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

Uygulama / kod / çekirdek / Mage / Adminhtml / kontrol / Cms / WysiwygController.php

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

Uygulama / kod / çekirdek / Mage / Adminhtml / kontrol / CustomerController.php

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

Uygulama / kod / çekirdek / Mage / Adminhtml / kontrol / sistemi / StoreController.php

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

Uygulama / kod / çekirdek / Mage / Katalog / Modeli / 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).'));
+                            }
+                        }

Uygulama / kod / çekirdek / Mage / Katalog / Modeli / kaynak / Kategori / Tree.php

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

Uygulama / kod / çekirdek / Mage / Ödeme / Modeli / Api / kaynak / Customer.php

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

Herkes onepage.php dosyasını geçersiz kılar, lütfen dosyayı güncelleyin.

Uygulama / kod / çekirdek / Mage / Ödeme / Model / Tip / Onepage.php

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

Anahtar doğrulaması eklendi için Lütfen alışveriş sepeti formunuzda form anahtarı olup olmadığını kontrol edin

Uygulama / kod / çekirdek / Mage / Ödeme / kontrol / CartController.php

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

Uygulama / kod / çekirdek / Mage / çekirdek / Yardımcı / 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));
+        }
+

Uygulama / kod / çekirdek / Mage / çekirdek / Model / Oturum / Özet / 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']);
+        }
+

Uygulama / kod / çekirdek / Mage / Müşteri / Yardımcı / 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;
+    }
+

Uygulama / kod / çekirdek / Mage / Müşteri / Modeli / kaynak / 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()) {

Uygulama / kod / çekirdek / Mage / Amerika / Yardımcı / 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 dosyasındaki özel durum tanıtıcısı

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

lib / Varien / Resim / Adaptör / Gd2.php

GD2: gerçek mime türünü döndürür.

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

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

js / tiny_mce / plugins / medya / .htaccess

Apache yerine nginx kullanıyorsanız, bu değişikliği çoğaltmak için yapılandırmanızı güncellediğinizden emin olun.

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

Uygulamanın / tasarım / adminhtml / default / default / template / system / nakliye / 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 = '';
+}

Yeni eklenen / güncellenen gönderim yöntemi:

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

Escapehtml dosyaları:

İndirilebilir ürün ön uç dosyaları: İndirilebilir ürün kullanan herkes lütfen tema dosyalarınızdaki dosyaları güncelleyin.

Uygulamanın / tasarım / kullanıcı arayüzü / baz / default / şablon / indirilebilir / katalog / ürün / links.phtml

Kodu kontrol et

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

Şununla değiştir

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

Uygulamanın / tasarım / kullanıcı arayüzü / baz / default / template / indirilebilir / ödeme / araba / madde / default.phtml

Kodu kontrol et

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

Şununla değiştir

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

Uygulamanın / tasarım / kullanıcı arayüzü / baz / default / şablon / indirilebilir / satış / sipariş / ürün / oluşturucusu / downloadable.phtml

Kodu kontrol et

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

Şununla değiştir

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

Uygulamanın / tasarım / kullanıcı arayüzü / default / iphone / şablon / indirilebilir / ödeme / araba / madde / default.phtml

Kodu kontrol et

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

Şununla değiştir

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

app / design / frontend / default / iphone / template / indirilebilir / ödeme / onepage / review / item.phtml Kontrol kodu

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

Şununla değiştir

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

app / design / frontend / rwd / default / template / indirilebilir / ödeme / alışveriş sepeti / item / default.phtml Kodu kontrol et

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

Şununla değiştir

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

Uygulamanın / tasarım / kullanıcı arayüzü / RWD / default / template / indirilebilir / ödeme / onepage / yorum / item.phtml

Kodu kontrol et

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

Şununla değiştir

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

Uygulamanın / tasarım / kullanıcı arayüzü / RWD / default / şablon / indirilebilir / satış / sipariş / ürün / oluşturucusu / downloadable.phtml

Kodu kontrol et

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

Şununla değiştir

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

Diğer Escapehtml dosyaları:

Uygulama / kod / çekirdek / Mage / Adminhtml / Blok / Katalog / Ürün / Kompozit / fieldset / Options.php

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

Uygulamanın / kod / çekirdek / Büyücü / Adminhtml / Blok / Katalog / Ürün / Düzenleme / Sekme / Seçenekler / Option.php

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

Uygulamanın / tasarım / kullanıcı arayüzü / kuruluş / default / template / cms / hiyerarşisi / 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 / denetleyiciler / CartController.php'de, ödeme sırasında hangi sayfada genellikle Form anahtarı hatası görüyorsunuz?
Icon

1
Hiçbir form anahtarı hatası görmüyorum. Herkes varsayılan / template / checkout / cart.phtml dosyasını ve cevapsız form anahtarını geçersiz kılarsa. hata değil ana sayfayı yeniden yönlendirir. bu bir kontrol listesidir. bir hata oluşursa lütfen form anahtarını kontrol edin :). Soru sorduğunuz için teşekkürler :)
Rama Chandran M

1
Tüm yama farklarını buraya göndermenin çok yararlı olduğunu düşünmüyorum. Gerçek olası konularla daha fazla ilgileniyorum ...
7ochem

1
Yorumunuz için teşekkürler. Dosyaların ne değiştiğini ve çekirdek kod değişikliklerinin ne olduğunu bulmak kolay olduğu için başkaları için yararlı olduğunu düşünüyorum. Örnek uygulama / tasarım / ön uç / rwd / varsayılan / şablon / indirilebilir / ödeme / onepage / review / item.phtml temanızda geçersiz kıldığımızı varsayalım, kodun kolaylığını değiştirin, ayrıca daha fazla kontrol listesi gibidir.
Rama Chandran M

8

Aşırı yüklenmiş filteryöntemdeki değişiklik Zend_Filter_PregReplacenaiftir ve $this->_matchPatternher zaman bir dize olduğunu varsayar . Bu özellik daha sonra ilk argüman olarak sağlanır preg_replace. Gerçekte, bir dizi de son derece geçerli bir argüman. Bu gerçek aslında birden fazla çekirdek Zend_Filtersınıf (örneğin Zend_Filter_Word_SeparatorToCamelCase) tarafından kullanılır . Bu nedenle, bu filtreyi veya türevlerinden birini kullanan bir dizi bağımsız değişkeni olan herhangi bir kod uzantısı veya dalı _matchPatternatmaya başlayacaktır Warning: substr() expects parameter 1 to be a string, array given.

Muhtemelen ne yapması gerektiğine dair kaba bir örnek, aşağıdakiler boyunca bir şey olacaktır:

/**
 * 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));
}

Buna rağmen henüz tam bir test yapmadım.

EDIT: Yukarıda önerilen çözüm hataları önlemek gerekirken, uygulama teknik olarak hala biraz naif ve yanlış pozitif eğilimli olduğunu belirtmek gerekir. Deseni değiştiricilerden ayıran normal ifade sınırlayıcının dizenin başındaki ile aynı olduğunu varsayar. PHP çeşitli köşeli ayraç stili sınırlayıcılarını desteklediğinden teknik olarak durum böyle değildir. Bu nedenle, geçerli girdi {hello}is, değiştiricilerin hello}is(gerçek değiştiricilerden ziyade is) olduğunu belirler ve desen aslında edeğiştiriciyi içermemesine rağmen bir istisna atar .


5

1.7.0.2 Sürüm Sorunu: Düzeltme ekini yükledikten ve bir sayfa kullanıma alma (genel Magento kullanıma alma) işleminden sonra bu hatayı alın

Ayrıştırma hatası: beklenmedik bir hata oluştu

app / code / core / Mage / Checkout / Model / Tür / Onepage.php on line 691

Düzeltme ekini ters çevirirseniz hata kaybolur.

Bu soruya derinlemesine baktığımda, yamanın onepage.php dosyasına aşağıdaki satırı eklediğini gördüm.

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

ÇÖZÜM: @FabianSchmengler sayesinde

PHP 5.4 ve üstü sürümüne GÜNCELLE!


ben de yama orijinal uygulanır $ passwordCreatedTime = $ this -> _ checkoutSession-> getData ('_ session_validator_data') ['session_expire_timestamp'] - Mage :: getSingleton ('core / cookie') -> getLifetime (); sonraki satır (yeni satır oluşturuldu / eklendi) - Mage :: getSingleton ('core / cookie') -> getLifetime (); oluşturulan sorun nedeni
Rama Chandran M

@RamaChandranM Yep! Aynı PARSE hatası mı alıyorsunuz? Ayrıca hangi sürümü kullanıyorsunuz?
Icon

1
evet başka bir projeyi kontrol edeceğim ve daha fazla ayrıntı vereceğim Ans :)
Rama Chandran M

2
@Icon PHP 5.4 uyumluluğu için bir yama vardı. Herhangi bir 1.7 kurulumuna uzun süre dokunmadım, ancak 5.6'da da çalışmasını beklerdim, bir deneyin.
Fabian Schmengler

1
@icon şu an için kullanımdan kaldırma bildirimlerini yok sayabilirsiniz, bu PHP 7'ye güncellediğinizde geçerli olacaktır
Fabian Schmengler

2

bilinen sorun: -

Özel kodunuz veya uzantınız kullanıyorsa Zend/Filter/PregReplace.ph e değiştiricisiyle p , artık olası RCE sorunları nedeniyle bir hata döndürecektir.

Bu düzeltme eki aşağıdaki güvenliği izler.

1) Ekstra yönetici oturumu doğrulama şifre değişikliği

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

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

ve sonra

+    /**
+     * @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) Dosya Uzantısı doğrulaması

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) XSS için Escape Html eklendi

+++ 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) Düzen güncellemesini kontrol etmek için XPath ifadesi

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) Bir kategori kaydedilirken kimliği doğrulanmış SQL enjeksiyonu

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

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

6) Ürün doğrulaması app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php

+                $product->validate();

7) Mime türü 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) Müşteri Parolası Oluşturma 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) UPS Değişiklikleri

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;
+    }

UPS için ADDED dosyalar

`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`

Bu yeni işlev için Ayar eklendi

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

+                            <backend_model>usa/shipping_carrier_ups_backend_freemethod</backend_model>

843 satır

+                            <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 sınıfı eklendi

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

1> 1) Paket Ürün doğrulaması

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

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

12) Yönetici oturumunda try catch in cron.php

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

2

Yama "htmlEt gibi görünüyor" getLinksTitle () "tüm düzenleme. Ancak aşağıdaki dosyaları unuttular (bu 1.8.1'e dayanmaktadır).

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

Yama vanilya Magento CE 1.8.0.0 üzerinde çalışmıyor

Güncelleme: Aşağıdaki çözüm eklendi.

Sorun:

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

Önceki yamalar uygulandı:

  • 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-10336
  • SUPEE-10266
  • SUPEE-10415
  • SUPEE-10570v2

Çözüm

Düzeltme eki dosyası düzenlenerek düzeltildi. Orijinal yama dosyasındaki yamanın 1854-1862 satırları downloadable.phtmliçin düzeltme eki tarafından düzeltme eki ile değiştirildi v1.7.0.2.

Bu esas olarak dosyadaki girinti nedeniyle. İçin değişiklikler gibi downloadable.phtmliçinde V1.7.0.2ne kadar çok girintili.

Çözüm 2

Benzer bir sorunum vardı, ancak orijinal dosyayı Windows stili CRLF'ler veya Mac CR'ler değil, Unix stili LF'ler olarak biten zorunlu bir düzenleyicide yeniden kaydederek düzeltmeyi başardım.


1

Matt Antley'e atfen, belki de bu nedenle SUPEE-10570v2 içermediler

Magento kısa süre önce hem SUPEE-10570> ya da Magento 1.9.3.8/1.14.3.8 yamalarında, müşterilerin ödeme sırasında kaydolmaya çalışırken ödeme işlemini tamamlayamamalarına neden olabilecek bir sorun hakkında bilgilendirildi. Magento artık bu soruna neden olmayan güncellenmiş bir yama (SUPEE-10570v2) sağlıyor. Ancak, bu yeni yamanın artık SUPEE-10570'i yamaya karşı koruyan düşük riskli oturum işleme ile ilgili güvenlik sorunlarına karşı koruma sağlamadığını unutmayın. https://magento.com/security/patches/supee-10570

Bildiğim kadarıyla ödeme hata çok yaygın değildi ve bu yüzden iki düşük riskli güvenlik sorunlarına karşı koruyan SUPEE-10570 ile kalmaya karar verdi ?!


+1 Büyük olasılıkla bunun sebebi, yine de kullanıcılar yeni sürüme geçiyorsa ve başvurmak zorunda SUPEE-10570v2kalırlarsa, yeniden uygulamak zorunda kalacaklarını belirtmek gerekir.
Matt Antley

Peter O'Callaghan'ın belirttiği gibi, 10570v2'deki değişiklikler 10752 tarafından geri çevrildi, bu yüzden öncekini dahil etmeye gerek yok. 1.9.3.9 için 10570v2 olmadığından, hiçbir şey uygulamanız gerekmez. Tüm akıl yürütme zayıftır: Magento neden 1.9.3.9 şubesini diğerlerinden farklı tutmalı? Hatta gelecekteki her sürümü ve yamayı 10570v2'ye dayandıracaklarını söylediler.
pong

Yorumlar için teşekkürler Peter ve pong. İkinizin de belirttiği gibi yanıltıcı olduğu için cevabımı kaldırdım. Bu benim niyetim değildi, sadece yazarken düşünmediğim bir şeydi ve bir göz atarken kısaca fark ettiğim SUPEE-10752ve silahı biraz atladığım bir şeydi . Tekrar, yorumlar için teşekkürler.
Matt Antley

1

Yama vanilya Magento CE 1.6.0.0 üzerinde çalışmıyor

Güncelleme: Aşağıdaki çözüm eklendi.

sorunlar:

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.

Önceki yamalar uygulandı:

  • 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-10266
  • SUPEE-10415
  • SUPEE-10570v2
  • SUPEE-10752

çözülmüş

Yama dosyasını değiştirerek bu sorunu çözdüm. Sorunları v1.5.1.0 için yamadan buna göre veren iri parçaların yerini aldım. Orijinal yama dosyasında bunlar 167-177 ve 663-670 satırlarıdır.


1

SUPEE-10752'yi uyguladıktan sonra EE v1.14.2.4'te, satın alma işleminin başarı sayfası yerine ana sayfaya yönlendirdiği sorunu gidermek için aşağıdaki yamayı da uygulamak zorunda kaldım:

Dosya: invalid_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;
         }

Yukarıdaki düzeltme bulunan https://magento.com/tech-resources/download altında SUPEE-10570 > invalid_session_fix.patch (0 MB)


Php <5.5 olduğunda da CE 1.9.3.6 ile aynı şeyi yapar, Düzeltme için teşekkürler
GunJan Mehta

1

Bu yamadan sonra bir sorunla karşılaştım. "UPS Tipi" "Birleşik Parsel Hizmeti XML" için "Serbest Yöntem" ayarlayamıyorum. "Serbest Yöntem" açılır menüsünde herhangi bir yöntem seçildiğinde Magento hata verir. Hata: " Alan" Ups Serbest Yöntemi "yanlış değere sahip. "

Aynı sorunla karşılaşan ve çözümü olan var mı?

Şimdiden teşekkürler!


0

1.6'da ups.phtml yaması bozuldu. 1.6 ($ stroredOriginShipment ve $ stroredFreeShipment) yazım hatası olan $ storeOriginShipment, $ storeFreeShipment'e başvuruyor. Ayrıca, 1.6'da hiç mevcut olmayan $ storeUpsType'a başvurur.


0

1.9.1.0 ve 1.9.2.4 ile ilgili bir sorunla karşılaştık (başkalarını test etmedik). Tüm projelerimizde görünmüyor, ancak birkaçında tekrarladı. SUPEE-10570v1'in bir noktada kurulu olduğu projeleri etkileyebileceğini düşünüyoruz.

Düzeltme ekini uyguladıktan sonra, bir kullanıcı oturum açarsa hesap sayfalarını mükemmel şekilde görür. Ancak, sitedeki başka bir sayfaya dönmeye çalışırlarsa, sayfa yanıt vermeyi durdurur ve boş bir ekran veya 502 Bozuk Ağ Geçidi görürler. Bunun nedeni PHP'nin sonsuz bir döngüye girmesi ve .ini ayarları tarafından segfaulting yapılması veya durdurulmasıdır.

Sorun yükleyen hattında sonsuz özyineleme olduğunu ben kazıp başardınız $customerin \app\code\core\Mage\Customer\Helper\Data.php, getPasswordTimestamp().

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

Sonsuz özyinelemenin yığın izine bakıldığında, tekrar tekrar buna geri dönmeye devam eder. Her nasılsa, yöntemi ->load()çağırmak biter gibi görünüyor getPasswordTimestamp().

Https://magento.stackexchange.com/a/235984/67252 içinde verilen geçici çözüm gayet iyi çalışıyor, ancak neler olduğunu bilmek istiyorum.


0

SUPEE 10752 yamasını uyguladıktan sonra, Kayıt ve ödeme başarı sayfasını ana sayfaya götürüyor. Herhangi bir öneri?


-1

SUPEE-10752 uyguladıktan ve derledikten sonra / checkout / * adresinde boş bir sayfa gördük

sürüm: 1.9.1.0

Tetikleme koşulları: SUPEE-10752 + uygulayarak derleyici + müşteri olarak oturum açın, ardından / checkout / * adresini ziyaret edin

Sadece açıklığa kavuşturmak için: Devre dışı bırakılmış derleyici ile her şey iyi gitti, etkin derleyici ile herhangi bir günlük girişi olmadan oturum açıldığında yalnızca boş bir sepet sayfası görebiliyorduk (tüm olası günlükleri ve geliştirici modunu etkinleştirdikten sonra bile).

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.