Güvenlik Düzeltme Eki SUPEE-10415 - Muhtemel Sorunlar?


37

Yeni Magento 1 yaması piyasaya sürüldü, SUPEE-10415 .

Bu yama, güvenlikle ilgili çeşitli sorunlara karşı koruma sağlar

Bilgi sayfası: https://magento.com/security/patches/supee-10415
İndirme sayfası: https://magento.com/tech-resources/download

Dikkat edilmesi gerekenler neler?

Ayrıca, lütfen yama kurulumundan sonra bulduğunuz tüm hataları ve sorunları paylaşın.


  • Vanilya üzerinde SUPEE-10415 uygulayarak ile ilgili sorun 1.9.1.1 , gösterileri en iri parça hata mesajı nedeniyle uygulanamaz Image.php . EDIT: 7 Aralık 2017 tarihi itibariyle SUPEE-10497’de düzeltme yapıldı

  • Olmalı 8788 Sürümleri 2 yüklü, aksi takdirde "desteklenmeyen veri türü" hatalar görür. Daha fazla bilgi.

  • SUPEE-10415'e yükselttikten sonra hatalardan / dizinden "404: Sayfa Bulunamadı" hatası. Bu sorun yalnızca belirli üçüncü taraf uzantılarını çalıştıran Magento kurulumlarında ortaya çıkar.
    Geçici Çözüm: Herhangi bir uzantı veya özelleştirmeden oluşan PHP uyarısı olmadığını doğrulayın.

5
Burada Magento 1.9.2.4CE ile ilgili hiç bir sorun olmadan konuşlandırılmış - değişikliklerin çoğu yönetici değişkenlerinin özellikle de dosya kaydetme kayıtlarında sanitasyona benziyor. Dezenfektan bakımından sabun apesinde de birkaç değişiklik olduğu görülüyor. Yorumlar ayrıca yönetici alanında dezenfekte edilmiştir, bu nedenle kötü niyetli kodun bir spekülasyona incelemede (spekülatif) gönderilmesi muhtemel bir istismar olabilir
Ricky Odin Matthews

2
Magento 1.9.3.0 CE'ye konuşlandırılmıştır. Burada sorun yok. Bu yamayı henüz uygulamadıysanız, 10266'dan önceki düzeltme eki gereklidir.
danmentzer

1
1.9.1.0'da - "Alışveriş Sepeti Fiyat Kurallarında" düzeltme eki başarısızlığa neden olur - görünüm kuralında zor hata - günlük girişi -a: 5: {i: 0; s: 23: "Desteklenmeyen veri türü N"; i: 1; s: 1464: "# 0 /opt/bitnami/apps/magento/htdocs/lib/Unserialize/Reader/Arr.php(102): Unserialize_Reader_ArrValue-> read ('N', ';') ---- yama dönüşü düzeltildi, bu yüzden SUPEE-10415’te bir şey
Laith

1
Cevap gönderecek bir itibarım yok, ancak Magento 1.9.3.7'ye yükseltme yapamazsınız ve sonra bu düzeltme ekiyle birleştirmek için Git'i kullanırsınız: MAXIMUM_PASSWORD_LENGTH sabiti, varsayılan Git davranışını kullanırsanız iki kez eklenir (varsa, hiçbir fikir yok) bunun için geçici olan ayarlar.
toon81

1
1.9.1.1 sayıları için: Lütfen SUPEE-10497'yi kullanın, bunun yerine 1.9.1.1'de bu sorunu çözmek için kısa bir süre önce piyasaya sürüldü. Lütfen bu notları kurulumdan önce SUPEE-10266'yı kaldırmayı gerektirdiğinden sürüm notlarını okuyun.
Piotr Kaminski

Yanıtlar:


26

Aşağıdaki dosyalar SUPEE - 10415 uygulandıktan sonra güncellenir / eklenir .

app/Mage.php
app/code/core/Mage/Adminhtml/Block/Report/Review/Detail.php
app/code/core/Mage/Adminhtml/Block/Report/Tag/Product/Detail.php
app/code/core/Mage/Adminhtml/Block/Review/Add.php
app/code/core/Mage/Adminhtml/Block/Review/Edit/Form.php
app/code/core/Mage/Adminhtml/Controller/Action.php
app/code/core/Mage/Adminhtml/Model/LayoutUpdate/Validator.php
app/code/core/Mage/Adminhtml/Model/System/Config/Backend/Filename.php
app/code/core/Mage/Api/Helper/Data.php
app/code/core/Mage/Api/Model/Server/Adapter/Soap.php
app/code/core/Mage/Api/Model/Wsdl/Config.php
app/code/core/Mage/Api/Model/Wsdl/Config/Base.php
app/code/core/Mage/Core/Helper/String.php
app/code/core/Mage/Core/Model/File/Validator/Image.php
app/code/core/Mage/Core/etc/config.xml
app/code/core/Mage/Core/etc/system.xml
app/code/core/Mage/Customer/Model/Customer.php
app/code/core/Mage/Eav/Model/Entity/Attribute/Backend/Serialized.php
app/code/core/Mage/Log/Helper/Data.php
app/code/core/Mage/Rule/Model/Abstract.php
app/code/core/Mage/Sales/Block/Adminhtml/Billing/Agreement/Grid.php
app/code/core/Zend/Form/Decorator/Form.php
app/design/adminhtml/default/default/template/backup/dialogs.phtml
app/design/adminhtml/default/default/template/sales/billing/agreement/view/tab/info.phtml
app/design/adminhtml/default/default/template/xmlconnect/edit/tab/content.phtml
app/design/adminhtml/default/default/template/xmlconnect/edit/tab/design/image_edit.phtml
app/locale/en_US/Mage_Adminhtml.csv
app/locale/en_US/Mage_Customer.csv
js/mage/adminhtml/backup.js
lib/Varien/Filter/FormElementName.php

Bazı önemli noktalar:

1) İzin verilen dosya uzantıları: log, txt, html, csv. aşağıdaki dosyaları teslim et

app/Mage.php
app/code/core/Mage/Adminhtml/Model/System/Config/Backend/Filename.php
app/code/core/Mage/Core/etc/system.xml
app/code/core/Mage/Log/Helper/Data.php

2) Maksimum şifre uzunluğu seti 256 karakter ve app/code/core/Mage/Customer/Model/Customer.phpdosyada onay kontrolü

@@ -74,6 +74,11 @@ class Mage_Customer_Model_Customer extends Mage_Core_Model_Abstract
     const MINIMUM_PASSWORD_LENGTH = 6;

     /**
+     * Maximum Password Length
+     */
+    const MAXIMUM_PASSWORD_LENGTH = 256;
+
+    /**
      * Model event prefix
      *
      * @var string
@@ -876,6 +881,10 @@ class Mage_Customer_Model_Customer extends Mage_Core_Model_Abstract
             $errors[] = Mage::helper('customer')
                 ->__('The minimum password length is %s', self::MINIMUM_PASSWORD_LENGTH);
         }
+        if (strlen($password) && !Zend_Validate::is($password, 'StringLength', array('max' => self::MAXIMUM_PASSWORD_LENGTH))) {
+            $errors[] = Mage::helper('customer')
+                ->__('Please enter a password with at most %s characters.', self::MAXIMUM_PASSWORD_LENGTH);
+        }
         $confirmation = $this->getPasswordConfirmation();
         if ($password != $confirmation) {
             $errors[] = Mage::helper('customer')->__('Please make sure your passwords match.');
@@ -902,7 +911,7 @@ class Mage_Customer_Model_Customer extends Mage_Core_Model_Abstract
     }

     /**
-     * Validate customer attribute values on password reset
+     * Validate customer password on reset
      * @return bool
      */
     public function validateResetPassword()
@@ -916,6 +925,10 @@ class Mage_Customer_Model_Customer extends Mage_Core_Model_Abstract
             $errors[] = Mage::helper('customer')
                 ->__('The minimum password length is %s', self::MINIMUM_PASSWORD_LENGTH);
         }
+        if (!Zend_Validate::is($password, 'StringLength', array('max' => self::MAXIMUM_PASSWORD_LENGTH))) {
+            $errors[] = Mage::helper('customer')
+                ->__('Please enter a password with at most %s characters.', self::MAXIMUM_PASSWORD_LENGTH);
+        }
         $confirmation = $this->getPasswordConfirmation();
         if ($password != $confirmation) {
             $errors[] = Mage::helper('customer')->__('Please make sure your passwords match.');

EE Sürümü İçin Ek dört dosya daha eklendi

app/code/community/OnTap/Merchandiser/Block/Adminhtml/Catalog/Product/List.php
app/design/adminhtml/default/default/template/merchandiser/smartmerch/tab.phtml
app/design/frontend/rwd/enterprise/template/giftcardaccount/onepage/payment/scripts.phtml
app/design/frontend/enterprise/default/template/giftcardaccount/onepage/payment/scripts.phtml

Enerji Verimliliği'nde bazı önemli noktalar

Aşağıdaki dosyalara bir koşul eklendi

app/design/frontend/rwd/enterprise/template/giftcardaccount/onepage/payment/scripts.phtml 
  app/design/frontend/enterprise/default/template/giftcardaccount/onepage/payment/scripts.phtml

Lütfen Tema dosyalarınızdaki aşağıdaki durumu güncelleyin.

if (elements[i].name == 'form_key') 
{
                continue;
 }

Daha fazla bilgi için:

https://magento.com/security/patches/supee-10415 http://devdocs.magento.com/guides/m1x/ce19-ee114/ee1.14_release-notes.html#ee114-11436 http: // devdocs. magento.com/guides/m1x/ce19-ee114/ce1.9_release-notes.html#ce19-1936


SUPEE-10415'i uyguladıktan sonra hem ön uç hem de arka uç 404 hatası alıyor, bu sorunu nasıl çözebilirim? magento.stackexchange.com/q/215620/57334
zus

Ayrı bir bilet oluşturabilir ve hata günlüğü ile açıklayabilir misiniz? .htaccess nedeniyle bu sorun veya modülü yerel olarak geçersiz kıl.
Rama Chandran M


20

SUPEE-10415 ...

  1. Aşağıdaki alanlarda bazı yönetici paneli XSS sorunlarını çözer:

    • Ürün incelemeleri raporu
    • Ürün etiketleri raporu
    • Ürün incelemesi arayüz ekle / düzenle
    • Fatura anlaşmaları
    • xmlconnect içerik düzenleyici sekmesi
    • Serileştirilmiş kurallar
  2. Sistem ve istisna günlük dosyaları için kullanılabilecek dosya uzantılarını kısıtlar. İzin verilen dosya uzantıları: .log, .txt, .html,.csv

  3. Müşteri hesabı şifrelerine 256 karakterlik bir üst sınır koyar. Bu özel değişiklik saçma; Bu parlak fikri nereden aldıklarından emin değilim.

Bu değişikliklerin hiçbiri, belki de müşteri şifresi uzunluğu kısıtlaması dışında, toplu olarak kırılma veya geriye dönük uyumsuzluk gibi görünmemektedir.


9
256 parola uzunluğu aslında yamalı Magento'da bir hatadır, çünkü veritabanı parola alanı maxlength = 255 olan customer_entity_varchar.value dosyasındadır.
Ricky Odin Matthews,

12
Haklısın; customer_entity_varchar.value sınırlı bir sütun boyutuna sahip. Ancak, şifre bu sütunda saklanmadığından bir hata değildir. Tuzlanmış ve karma şifre orada saklanır. Bu değer, orijinal şifrenin boyutundan bağımsız olarak daima sabit bir uzunluğa sahip olacaktır. Bu düzeltme ekinden önce, 255 karakterden uzun bir parola girme kesinlikle sorun olmazdı.
t-richards

3
Parola uzunluğu değişikliğinin APPSEC-1330 ile ilgisi olduğunu varsayıyorum. magento.com/security/patches/supee-10415
quasiobject

7
Belki de bu onların düşünceleridir, Rob: stackoverflow.com/a/98857/8199523
RickyMage123

1
@ t-richards harika bir nokta, tam oradasın. Neden bunu yapacaklarını düşündünüz, sanırım uzun bir şifrenin CPU kullanımı açısından DoS sorununa neden olabileceğini düşünüyorum, kesinlikle daha uzun bir şifre PHP'de daha fazla CPU / Bellek gerektiriyor mu?
Ricky Odin Matthews

12

SUPEE 10415 8788 v2 yamasını gerektirir

Bir önceki yayınla aynı hatayla karşılaştım, ancak kaldırılmış gibi görünüyor.

a:5:{i:0;s:23:"Unsupported data type N";i:1;s:2942:"#0 /chroot/home/mywebroot/html/lib/Unserialize/Reader/Arr.php(102): Unserialize_Reader_ArrValue->  read('N', ';')
#1 /chroot/home/mywebroot/html/lib/Unserialize/Parser.php(53): Unserialize_Reader_Arr->read('N', ';')
#2 /chroot/home/mywebroot/html/app/code/core/Mage/Core/Helper/UnserializeArray.php(44): Unserialize_Parser->unserialize('a:6:{s:4:"type"...')
#3 /chroot/home/mywebroot/html/app/code/core/Mage/Rule/Model/Abstract.php(179): Mage_Core_Helper_UnserializeArray->unserialize('a:6:{s:4:"type"...')
#4 /chroot/home/mywebroot/html/app/code/core/Mage/Rule/Model/Abstract.php(353): Mage_Rule_Model_Abstract->getConditions()
#5 /chroot/home/mywebroot/html/app/code/core/Mage/SalesRule/Model/Validator.php(216): Mage_Rule_Model_Abstract->validate(Object(   Mage_Sales_Model_Quote_Address))
#6 /chroot/home/mywebroot/html/app/code/core/Mage/SalesRule/Model/Validator.php(242): Mage_SalesRule_Model_Validator->_canProcessRule(Object(  Mage_SalesRule_Model_Rule), Object(Mage_Sales_Model_Quote_Address))
#7 /chroot/home/mywebroot/html/app/code/core/Mage/SalesRule/Model/Quote/Freeshipping.php(74): Mage_SalesRule_Model_Validator->processFreeShipping(Object(  Mage_Sales_Model_Quote_Item))
#8 /chroot/home/mywebroot/html/app/code/core/Mage/Sales/Model/Quote/Address.php(1013): Mage_SalesRule_Model_Quote_Freeshipping->collect(Object(    Mage_Sales_Model_Quote_Address))
#9 /chroot/home/mywebroot/html/app/code/core/Mage/Sales/Model/Quote.php(1331): Mage_Sales_Model_Quote_Address->collectTotals()
#10 /chroot/home/mywebroot/html/app/code/core/Mage/Checkout/Model/Cart.php(458): Mage_Sales_Model_Quote->collectTotals()
#11 /chroot/home/mywebroot/html/app/code/core/Mage/Checkout/controllers/CartController.php(127): Mage_Checkout_Model_Cart->save()
#12 /chroot/home/mywebroot/html/app/code/core/Mage/Core/Controller/Varien/Action.php(418): Mage_Checkout_CartController->indexAction()
#13 /chroot/home/mywebroot/html/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(254): Mage_Core_Controller_Varien_Action->dispatch('index')
#14 /chroot/home/mywebroot/html/app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(   Mage_Core_Controller_Request_Http))
#15 /chroot/home/mywebroot/html/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#16 /chroot/home/mywebroot/html/app/Mage.php(683): Mage_Core_Model_App->run(Array)
#17 /chroot/home/mywebroot/html/index.php(96): Mage::run('', 'store')
#18 {main}";s:3:"url";s:15:"/checkout/cart/";s:11:"script_name";s:10:"/index.php";s:4:"skin";s:7:"default";}

Yeni yamayı M 1.8.00 CE üzerine kurduğumda yukarıdaki hatayı karşıladım. Bunun nedeni, 8788’in v2 yamasını yapmaktan kaynaklanıyor gibi görünüyor.

Yamayı geri döndürmek yerine değişiklikleri el ile yaptım ve şimdi site düzgün çalışıyor.

Aşağıda 8788 yamasının kodunu bulacaksınız.

diff --git lib/Unserialize/Parser.php lib/Unserialize/Parser.php
index 423902a..2c01684 100644
--- lib/Unserialize/Parser.php
+++ lib/Unserialize/Parser.php
@@ -34,6 +34,7 @@ class Unserialize_Parser
     const TYPE_DOUBLE = 'd';
     const TYPE_ARRAY = 'a';
     const TYPE_BOOL = 'b';
+    const TYPE_NULL = 'N';

     const SYMBOL_QUOTE = '"';
     const SYMBOL_SEMICOLON = ';';

diff --git lib/Unserialize/Reader/Arr.php lib/Unserialize/Reader/Arr.php
index caa979e..cd37804 100644
--- lib/Unserialize/Reader/Arr.php
+++ lib/Unserialize/Reader/Arr.php
@@ -101,7 +101,10 @@ class Unserialize_Reader_Arr
         if ($this->_status == self::READING_VALUE) {
             $value = $this->_reader->read($char, $prevChar);
             if (!is_null($value)) {
-                $this->_result[$this->_reader->key] = $value;
+                $this->_result[$this->_reader->key] =
+                    ($value == Unserialize_Reader_Null::NULL_VALUE && $prevChar == Unserialize_Parser::TYPE_NULL)
+                        ? null
+                        : $value;
                 if (count($this->_result) < $this->_length) {
                     $this->_reader = new Unserialize_Reader_ArrKey();
                     $this->_status = self::READING_KEY;

diff --git lib/Unserialize/Reader/ArrValue.php lib/Unserialize/Reader/ArrValue.php
index d2a4937..c6c0221 100644
--- lib/Unserialize/Reader/ArrValue.php
+++ lib/Unserialize/Reader/ArrValue.php
@@ -84,6 +84,10 @@ class Unserialize_Reader_ArrValue
                     $this->_reader = new Unserialize_Reader_Dbl();
                     $this->_status = self::READING_VALUE;
                     break;
+                case Unserialize_Parser::TYPE_NULL:
+                    $this->_reader = new Unserialize_Reader_Null();
+                    $this->_status = self::READING_VALUE;
+                    break;
                 default:
                     throw new Exception('Unsupported data type ' . $char);
             }

diff --git lib/Unserialize/Reader/Null.php lib/Unserialize/Reader/Null.php
new file mode 100644
index 0000000..93c7e0b
--- /dev/null
+++ lib/Unserialize/Reader/Null.php
@@ -0,0 +1,64 @@
+<?php
+/**
+ * Magento
+ *
+ * NOTICE OF LICENSE
+ *
+ * This source file is subject to the Open Software License (OSL 3.0)
+ * that is bundled with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://opensource.org/licenses/osl-3.0.php
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@magento.com so we can send you a copy immediately.
+ *
+ * DISCLAIMER
+ *
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
+ * versions in the future. If you wish to customize Magento for your
+ * needs please refer to http://www.magento.com for more information.
+ *
+ * @category    Unserialize
+ * @package     Unserialize_Reader_Null
+ * @copyright  Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
+ * @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
+ */
+
+/**
+ * Class Unserialize_Reader_Null
+ */
+class Unserialize_Reader_Null
+{
+    /**
+     * @var int
+     */
+    protected $_status;
+
+    /**
+     * @var string
+     */
+    protected $_value;
+
+    const NULL_VALUE = 'null';
+
+    const READING_VALUE = 1;
+
+    /**
+     * @param string $char
+     * @param string $prevChar
+     * @return string|null
+     */
+    public function read($char, $prevChar)
+    {
+        if ($prevChar == Unserialize_Parser::SYMBOL_SEMICOLON) {
+            $this->_value = self::NULL_VALUE;
+            $this->_status = self::READING_VALUE;
+            return null;
+        }
+
+        if ($this->_status == self::READING_VALUE && $char == Unserialize_Parser::SYMBOL_SEMICOLON) {
+            return $this->_value;
+        }
+        return null;
+    }
+}

Bu yazıdan gelen hata hakkında da daha fazla bilgi okuyabilirsiniz SOLVED: new Unserialize_Parser sınıfı NULL değerlere istisnalar atar


Aha! iyi bir nokta, sorunu önlemek için 8788 V2 gereklidir!
Icon

Lütfen web sitenizin hangi sayfalarında "Desteklenmeyen veri türü" hataları gördüğünüzü söyleyebilir misiniz? Çoğaltmaya çalışıyorum.
Icon

Bir ürün sepetindeyken kategori sayfasında, ürün sayfasında ve sepetinde tetikleyebildim.
danmentzer,

@ danmentzer hatayı nasıl çözebilirim, 9767 v1 yamasını geri dönebilirim: error: justpaste.it/1e9pn
zus

@zus Az önce yazınızı gördüm, bunu macununuzun görünüşünden anladınız mı? Hatanızın üç olası nedeni hakkında bir tahminde bulunacağım. 1. Yanlış düzeltme eki sürümüne sahipsiniz (Bu en az olasıdır) 2. Düzeltme ekiniz zaten uygulanmadı. 3. Belki bazılarını manuel olarak düzelttiniz ve yama bunu nasıl yaptığınızdan hoşlanmıyor. Bu yardımcı
olmadıysa

11

Bu düzeltme ekinde, sitedeki her sayfanın dizinden "404: Sayfa Bulunamadı" hatasını göstermeye başladığı bir sorunla karşılaştık errors/. Biraz kazı yaptıktan sonra ortaya çıkan bir PHP Uyarısından kaynaklandı Mage_Core_Model_App::init, bu Mage_Core_Model_Store_Exceptionyamadan sonra aşağıdaki satırlarda a'ya neden oldu:

diff --git app/Mage.php app/Mage.php
index 566027d..165928d 100644
--- app/Mage.php
+++ app/Mage.php
@@ -805,7 +805,12 @@ final class Mage
         static $loggers = array();

         $level  = is_null($level) ? Zend_Log::DEBUG : $level;
-        $file = empty($file) ? 'system.log' : $file;
+        $file = empty($file) ? 'system.log' : basename($file);
+
+        // Validate file extension before save. Allowed file extensions: log, txt, html, csv
+        if (!self::helper('log')->isLogFileExtensionValid($file)) {
+            return;
+        }

         try {
             if (!isset($loggers[$file])) {
  1. Mağazalar başlatılmadan önce bir PHP Uyarısı oluyor
  2. İletiyi günlük dosyasına kaydetmek için mageCoreErrorHandler()çağıran çağrı, uyarı tarafından algılanır Mage::log().
  3. Mage::log() aramalar Mage::helper('log')
  4. Mage_Log_Helper_Data::__constructaramalar Mage::getStoreConfig(), hangi aramalar Mage::app()->getStore(), ancak mağazalar henüz başlatılmadı ve bunlar Mage_Core_Model_Store_Exceptionatıldı
  5. app/Mage.php:647 istisnayı yakalar ve 404 sayfa döndürür

Günlük dosyası uzantısını denetlerken uyarıyı düzeltmek ve / veya istisnayı yakalamak dışında, çözümün henüz ne olduğundan emin değilsiniz. Ne düşündüklerini görmek için bunu Magento'ya bildireceğim.


hangi sürümü kullanıyorsun
İkon

1
Icon 1.9.3.6. Daha az güncel projelerimizden bazılarının bu __construct()yöntemde Mage_Log_Helper_Dataolmadığını, bu nedenle bundan etkilenmeyeceğini, ancak en son topluluk ve işletme sürümlerinin de bulunduğunu fark ettim .
Tomas Gerulaitis,

Magento bu soruyu ele aldı gibi görünüyor devdocs.magento.com/guides/m1x/ce19-ee114/…
Simge

Magento, bu sorunu bir sonraki yamayla çözmeyi planlayıp planlamadıklarından bahsetti mi?
Icon

1
@Icon Magento'nun konfigürasyon başlatması sırasında problem yaşandığından, yönetici içinde olduğu gibi ön uçta da hatalar gördük.
Tomas Gerulaitis

8

1. Çözüldü: Bir kullanıcı Yönetici yüklediğinde Geçersiz Gizli Anahtar sorunu

Bu yamalarda, Magento artık göstermiyor “Invalid Secret Key. Please refresh the page.” message when a user loads the Admin.

Adresindeki kodu değiştirerek

app/code/core/Mage/Adminhtml/Controller/Action.php

MAX 256'ya kadar tüm müşteri şifrenizin katı olmasını sağlayın:

Magento 1.x şifre minimum uzunluğunun 6 olduğunu zaten biliyoruz .

fakat bu yamada magento maksimum uzunluğu 256 ile sınırlandırıyor.

Bu durum, magento bitti sahiptir değişiklikleri fonksiyonu en validate() hakkındaki Müşteri modeli sınıfı kimse varsa, .bu onlar kodunun altına eklemek gerekir sonra geçersiz ayrıca sınıf geçersiz kılmak vethat override class

if (strlen($password) && !Zend_Validate::is($password, 'StringLength', array('max' => self::MAXIMUM_PASSWORD_LENGTH))) {
   $errors[] = Mage::helper('customer')
       ->__('Please enter a password with at most %s characters.', self::MAXIMUM_PASSWORD_LENGTH);
}

$this->escapeHtml()XSS saldırısının mümkün olduğu bazı dosyalar için Add ve Mage :: helper ('core') -> quoteEscape ()

Herhangi biri bu dosyaları geçersiz kılarsa , 1.app/code/core/Mage/Adminhtml/Block/Report/Review/Detail.php sınıfını geçersiz kılmak için aşağıdaki kodu eklemelisiniz

değiştirmek

$ this -> _ headerText = Mage :: helper ('report') -> __ ('% s' için değerlendirme, $ product-> getName ());

ile

$ this -> _ headerText = Mage :: helper ('raporlar') -> __ ('% s' için değerlendirme, $ this-> escapeHtml ($ product-> getName ()));

2.app/code/core/Mage/Adminhtml/Block/Report/Tag/Product/Detail.php

değiştirmek

$ this -> _ headerText = Mage :: helper ('raporlar') -> __ ('% s öğesine gönderilen etiketler', $ product-> getName ());

ile

$this->_headerText = Mage::helper('reports')->__('Tags submitted to %s', $this->escapeHtml($product->getName()));

3.app/code/core/Mage/Adminhtml/Block/Review/Edit/Form.php

değiştirmek

'text' => '<a href="' . $this->getUrl('*/catalog_product/edit', array('id' => $product->getId())) . '" onclick="this.target=\'blank\'">' . $product->getName() . '</a>'

ile

'text' => '<a href="' . $this->getUrl('*/catalog_product/edit', array('id' => $product->getId())) . '" onclick="this.target=\'blank\'">' . $this->escapeHtml($product->getName()) . '</a>'

  1. Müşteri siparişi görünümü faturalandırması kabul ediyor: uygulama / tasarım / adminhtml / varsayılan / varsayılan / şablon / satış / faturalandırma / anlaşma / görünüm / sekme / info.phtml

değiştirmek

<?php echo $this->getCustomerEmail() ?>

ile

<?php echo $this->escapeHtml($this->getCustomerEmail()) ?>

  1. app / design / adminhtml / default / default / template / xmlconnect / edit / tab / content.phtml, Mage :: yardımcısı ('core') -> quoteEscape

değiştirmek

this.pageOptions += '<option value="<?php echo $helper->jsQuoteEscape($page['value']) ?>"><?php echo $helper->jsQuoteEscape($page['label']) ?></option>';

ile

$this.pageOptions += '<option value="<?php echo $helper->jsQuoteEscape($page['value']) ?>"><?php echo $helper->quoteEscape($page['label']) ?></option>';

  1. app / design / adminhtml / default / default / template / xmlconnect / edit / tab / design / image_edit.phtml Mage :: yardımcı ('çekirdek') -> quoteEscape

değiştirmek

<option value="<?php echo $page['value']; ?>"><?php echo $page['label']; ?></option>

ile

<option value="<?php echo $page['value']; ?>"><?php echo Mage::helper('core')->quoteEscape($page['label']); ?></option>


4
Thanks @Amit cevapsız "ans: Çözüldü: Geçersiz Gizli Anahtar sorunu" ans. +1
Rama Chandran M

1
hoş geldiniz:) ... bu soruda iyi iş çıkardın
Amit Bera

7

SUPEE-10358 ^ ürününü zaten uyguladıysanız veya el ile yamalıysanız app/code/core/Mage/Adminhtml/Controller/Action.php " Geçersiz Gizli Anahtar " sorunu için bu bölümü düzeltme eki dosyasından el ile silmeniz gerekir:

diff --git app/code/core/Mage/Adminhtml/Controller/Action.php app/code/core/Mage/Adminhtml/Controller/Action.php
index 2a8e63f..f2ee208 100644
--- app/code/core/Mage/Adminhtml/Controller/Action.php
+++ app/code/core/Mage/Adminhtml/Controller/Action.php
@@ -186,7 +186,7 @@ class Mage_Adminhtml_Controller_Action extends Mage_Core_Controller_Varien_Actio
                 'message' => $_keyErrorMsg
             )));
         } else {
-                if ($_keyErrorMsg != ''){
+                if (!$_isValidFormKey){
                 Mage::getSingleton('adminhtml/session')->addError($_keyErrorMsg);
             }
             $this->_redirect( Mage::getSingleton('admin/session')->getUser()->getStartupPageUrl() );

Ayrıca, daha önce düzelttiyseniz " new-pawwsord " yazım hatası (SUPEE-10266'da tanıtıldı) app/design/adminhtml/default/default/template/backup/dialogs.phtml o kısımdaki düzeltme ekini de silin:

diff --git app/design/adminhtml/default/default/template/backup/dialogs.phtml app/design/adminhtml/default/default/template/backup/dialogs.phtml
index c5a3f82..2ff57cc 100644
--- app/design/adminhtml/default/default/template/backup/dialogs.phtml
+++ app/design/adminhtml/default/default/template/backup/dialogs.phtml
@@ -158,7 +158,7 @@
                             <td class="value">
                                 <!-- This is a dummy hidden field to trick firefox from auto filling the password -->
                                 <input type="password" class="input-text no-display" name="dummy" id="dummy" />

-                                    <input type="password" name="ftp_pass" id="ftp_pass" autocomplete="new-pawwsord">
+                                    <input type="password" name="ftp_pass" id="ftp_pass" autocomplete="new-password">
                             </td>
                         </tr>
                         <tr>

^ MageSupport, InvalidSecretKey sorunuyla ilgili bir EE destek biletine yanıt olarak SUPEE-10358'i sağladı


5

Sorun: yama vanilyada çalışmıyor 1.9.1.1

Düzenleme 1: düzeltilmiş aşağıda.

Düzenleme 2: düzeltmem artık gerekli değil, Magento bu sorunu düzelten SUPEE-10497'yi sağladı .

Sorun:

# file: PATCH_SUPEE-10415_CE_1.9.1.1_v1-2017-11-27-05-47-08.sh
Checking if patch can be applied/reverted successfully...
ERROR: Patch can't be applied/reverted successfully.

checking file app/Mage.php
checking file app/code/core/Mage/Adminhtml/Block/Report/Review/Detail.php
checking file app/code/core/Mage/Adminhtml/Block/Report/Tag/Product/Detail.php
checking file app/code/core/Mage/Adminhtml/Block/Review/Add.php
checking file app/code/core/Mage/Adminhtml/Block/Review/Edit/Form.php
checking file app/code/core/Mage/Adminhtml/Controller/Action.php
checking file app/code/core/Mage/Adminhtml/Model/LayoutUpdate/Validator.php
checking file app/code/core/Mage/Adminhtml/Model/System/Config/Backend/Filename.php
checking file app/code/core/Mage/Api/Helper/Data.php
checking file app/code/core/Mage/Api/Model/Server/Adapter/Soap.php
checking file app/code/core/Mage/Api/Model/Wsdl/Config.php
checking file app/code/core/Mage/Api/Model/Wsdl/Config/Base.php
checking file app/code/core/Mage/Core/Helper/String.php
checking file app/code/core/Mage/Core/Model/File/Validator/Image.php
Hunk #1 FAILED at 90.
1 out of 1 hunk FAILED
checking file app/code/core/Mage/Core/etc/config.xml
checking file app/code/core/Mage/Core/etc/system.xml
Hunk #1 succeeded at 651 (offset 1 line).
Hunk #2 succeeded at 661 (offset 1 line).
checking file app/code/core/Mage/Customer/Model/Customer.php
checking file app/code/core/Mage/Eav/Model/Entity/Attribute/Backend/Serialized.php
checking file app/code/core/Mage/Log/Helper/Data.php
checking file app/code/core/Mage/Rule/Model/Abstract.php
checking file app/code/core/Mage/Sales/Block/Adminhtml/Billing/Agreement/Grid.php
checking file app/code/core/Zend/Form/Decorator/Form.php
checking file app/design/adminhtml/default/default/template/backup/dialogs.phtml
checking file app/design/adminhtml/default/default/template/sales/billing/agreement/view/tab/info.phtml
checking file app/design/adminhtml/default/default/template/xmlconnect/edit/tab/content.phtml
checking file app/design/adminhtml/default/default/template/xmlconnect/edit/tab/design/image_edit.phtml
checking file app/locale/en_US/Mage_Adminhtml.csv
checking file app/locale/en_US/Mage_Customer.csv
checking file js/mage/adminhtml/backup.js
checking file lib/Varien/Filter/FormElementName.php

Vanilya Magento 1.9.1.1 https://github.com/OpenMage/magento-mirror/archive/1.9.1.1.tar.gz adresinden indirildi.

Bu Magento'ya önceden uygulanmış yamalar 1.9.1.1:

2017-11-29 07:37:12 UTC | SUPEE-5994 | CE_1.6.0.0 | v1 | _ | n/a | SUPEE-5994_CE_1.6.0.0_v1.patch
2017-11-29 07:37:12 UTC | SUPEE-6237 | EE_1.14.2.0 | v1 | 8b216c42e2e5d2cb5d8e500fcb6690abede9df52 | Fri Jun 12 13:39:59 2015 +0300 | v1.14.2.0..HEAD
2017-11-29 07:37:12 UTC | SUPEE-6285 | CE_1.9.1.1 | v2 | 7226d88b1eeb07a5fbc4e62be189a5219457cc14 | Mon Jun 22 16:32:26 2015 +0300 | 202596e441..7226d88b1e
2017-11-29 07:37:12 UTC | SUPEE-6482 | CE_1.9.2.0 | v1 |  | Tue Jul 14 14:17:04 2015 +0300 |
2017-11-29 07:37:12 UTC | SUPEE-6788 | CE_1.9.1.1 | v1 | 2349a68440e870cd68dfa81fb982f3b7a42cd099 | Fri Oct 23 14:49:16 2015 +0300 | b240663
2017-11-29 07:37:12 UTC | SUPEE-7405-CE-1-9-1-1 | CE_1.9.1.1 | v1 | f1c57f70de3fc2bea64bbe3ddf3bdf076b750f8e | Tue Jan 19 15:29:35 2016 +0200 | 2349a68440..f1c57f70de
2017-11-29 07:37:12 UTC | SUPEE-7405 | CE_1.9.1.1 | v1.1 | 38d673b4d2b132c6df53becc9d92346aa5d9627e | Fri Feb 5 13:28:39 2016 +0200 | f1c57f70de3fc2bea64bbe3ddf3bdf076b750f8e..38d673b4d2b132c6df53becc9d92346aa5d9627e
2017-11-29 07:37:12 UTC | SUPEE-7616 | CE_1.9.2.2-CE_1.8.0.0 | v1 | 1609c0d0be86473d357346fa51f93c12b365d7a1 | Tue Dec 8 12:53:31 2015 +0200 | e1fc3c59c9587427b8a9c88655715f27afbfe970..1609c0d0be86473d357346fa51f93c12b365d7a1
2017-11-29 07:37:12 UTC | SUPEE-8167 | EE_1.14.2.0 | v1 | 87bb97f9b0b2871f842b7faabf667a81806f937e | Thu Apr 27 13:31:21 2017 +0300 | 6010eb82..87bb97f9b
2017-11-29 07:37:12 UTC | SUPEE-8788 | CE_1.9.1.1 | v2 | 8d9fad1daf5131de3430ef09b0816d3d133c8412 | Mon Sep 26 14:06:18 2016 +0300 | 38d673b4d2..8d9fad1daf
2017-11-29 07:37:12 UTC | SUPEE-8967 | EE_1.13.1.0 | v1 | 1fa53e9533f6f3a16f24d9b64dabef0ab7f965d7 | Thu Aug 18 16:32:48 2016 +0300 | 97d160644..1fa53e9533
2017-11-29 07:37:13 UTC | SUPEE-9652 | EE_1.14.3.1 | v1 | 4038f0785d828794083f53f10c01aaa6af403523 | Tue Jan 24 15:03:12 2017 +0200 | 9586981e6ca8b255014b242d50b68b88525b0754..4038f0785d828794083f53f10c01aaa6af403523
2017-11-29 07:37:13 UTC | PATCH_SUPEE-9767_CE_1.9.3.0_v2 | CE_1.9.3.0 | v2 | 6566db274beaeb9bcdb56a62e02cc2da532e618c | Thu Jun 22 04:30:03 2017 +0300 | v1.14.3.3..HEAD
2017-11-29 07:37:13 UTC | SUPEE-10336_v1.14.2.4 | CE_1.9.2.4 | v1 | 721708ecf41f0ee745b8f441a4bfe56471b493a7 | Fri Sep 8 17:55:44 2017 +0300 | cc0d87..721708e
2017-11-29 07:37:13 UTC | SUPEE-10266-CE-1.9.1.1 | CE_1.9.1.1 | v1 | f66c6bcd3c16c5ca934823e6a91b5696698e497c | Fri Sep 1 12:15:53 2017 +0300 | 8d9fad1daf5131de3430ef09b0816d3d133c8412..HEAD

1.9.1.1 için SUPEE-10415 yaması için resmi düzeltme:

  • Eğer yüklediyseniz SUPEE-10266:
    Kullanarak geri alın: ./PATCH_SUPEE-10266_CE_1.9.1.1_v1-2017-09-15-04-59-56.sh --revert
  • Eğer yüklü değilse SUPEE-10415:
    Geri Al o kullanarak ./PATCH_SUPEE-10415_CE_1.9.1.1_v1-2017-11-27-05-47-08.sh --revert
  • Şimdi SUPEE-10497'yi uygulayın

1.9.1.1 [kullanımdan kaldırılmış] için SUPEE-10415 yaması için manuel düzeltme:

Dosyayı düzenleyin PATCH_SUPEE-10415_CE_1.9.1.1_v1-2017-11-27-05-47-08.sh, satırları değiştirin 445-447 .

Eski:

         $fileInfo = getimagesize($filePath);
         if (is_array($fileInfo) and isset($fileInfo[2])) {
             if ($this->isImageType($fileInfo[2])) {

Yeni:

         list($imageWidth, $imageHeight, $fileType) = getimagesize($filePath);
         if ($fileType) {
             if ($this->isImageType($fileType)) {

Ben de bunu yaşıyorum. İle bir sorun gibi görünüyor app/code/core/Mage/Core/Model/File/Validator/Image.php. Yama SUPEE-10415 dikkate Yama SUPEE-9767 (v1 veya v2) tarafından yapılan değişiklik almaya görünmüyor
wr125

1
Düzeltme cevabımın altına eklendi.
Jeroen Vermeulen - MageHost

1
Katılmıyorum Github.com/OpenMage/magento-mirror/archive/1.9.2.2.tar.gz adresinden bir vanilya yüklemesi yaptık ve bu sırayla yamalar uygulayabildik: SUPEE-7405-CE-1-9-2-2 | CE_1.9.2.2 | v1, SUPEE-7405 | CE_1.9.2.2 | v1.1, SUPEE-7616 | CE_1.9.2.2-CE_1.8.0.0 | v1, SUPEE-8167 | EE_1.14.2.0 | v1, SUPEE-8788 | CE_1.9.2.2 | v2, SUPEE-8967 | EE_1.13.1.0 | v1, SUPEE-9652 | EE_1.14.3.1 | v1, PATCH_SUPEE-9767_CE_1.9.3.0_v2 | CE_1.9.3.0 | v2, SUPEE-10336_v1.14.2.4 | CE_1.9.2.4 | v1, SÜE-10266-CE-1.9.2.4 | CE_1.9.2.4 | v1, SUPEE-10415-ce-1.9.2.2 | CE_1.9.2.2 | v1
Jeroen Vermeulen - MageHost

1
Önceki tüm yamaları uygulamanız gerekiyor, önceki yorumuma bakın. Test ettim.
Jeroen Vermeulen - MageHost

4
Lütfen bunun yerine SUPEE-10497 kullanın, 1.9.1.1 tarihinde bu sorunu çözmek için yeni piyasaya sürüldü. Lütfen bu notları kurulumdan önce SUPEE-10266'yı kaldırmayı gerektirdiğinden sürüm notlarını okuyun.
Piotr Kaminski

3

İşte tam değişiklik günlüğü ve bu değişimle ne anlıyorum

Hangi dosyalar hangi nedenden aşağıda listelenmiştir?

Kaçış Html değişikliği

dosya

app/code/core/Mage/Adminhtml/Block/Report/Review/Detail.php
app/code/core/Mage/Adminhtml/Block/Report/Tag/Product/Detail.php
app/code/core/Mage/Adminhtml/Block/Review/Add.php
app/code/core/Mage/Adminhtml/Block/Review/Edit/Form.php
app/code/core/Mage/Sales/Block/Adminhtml/Billing/Agreement/Grid.php
app/design/adminhtml/default/default/template/sales/billing/agreement/view/tab/info.phtml
app/design/adminhtml/default/default/template/xmlconnect/edit/tab/content.phtml
app/design/adminhtml/default/default/template/xmlconnect/edit/tab/design/image_edit.phtml
js/mage/adminhtml/backup.js

'/' Yerine DS ekle

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

yeni dosya eklendi

app/code/core/Zend/Form/Decorator/Form.php
lib/Varien/Filter/FormElementName.php

Değişiklik dosyasını tamamla

Uygulama / kod / çekirdek / Mage / Adminhtml / Modeli / Sistemi / yapılandırma / arka uç / filename.php

 class Mage_Adminhtml_Model_System_Config_Backend_Filename extends Mage_Core_Model_Config_Data
 {
+
+ /**
+ * Config path for system log file.
+ */
+ const DEV_LOG_FILE_PATH = 'dev/log/file';
+
+ /**
+ * Config path for exception log file.
+ */
+ const DEV_LOG_EXCEPTION_FILE_PATH = 'dev/log/exception_file';
+
+ /**
+ * Processing object before save data
+ *
+ * @return Mage_Adminhtml_Model_System_Config_Backend_Filename
+ * @throws Mage_Core_Exception
+ */
 protected function _beforeSave()
 {
- $value = $this->getValue();
- $value = basename($value);
+ $value = $this->getValue();
+ $configPath = $this->getPath();
+ $value = basename($value);
+
+ // if dev/log setting, validate log file extension.
+ if ($configPath == self::DEV_LOG_FILE_PATH || $configPath == self::DEV_LOG_EXCEPTION_FILE_PATH) {
+ if (!Mage::helper('log')->isLogFileExtensionValid($value)) {
+ throw Mage::exception('Mage_Core', Mage::helper('adminhtml')->__
+ ('Invalid file extension used for log file. Allowed file extensions: log, txt, html, csv'));
+ }
+ }
+
     $this->setValue($value);
     return $this;
 }

GetCacheId () ve getServiceUrl () yöntemi eklendi

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

Eklenen yöntem unserialize ()

app/code/core/Mage/Core/Helper/String.php

App / code / core / Mage / Api / Helper / Data.php içinde oluşturulan getServiceUrl () yöntemini kullanın

app/code/core/Mage/Api/Model/Server/Adapter/Soap.php
app/code/core/Mage/Api/Model/Wsdl/Config/Base.php

App / code / core / Mage / Api / Helper / Data.php içinde oluşturulan getCacheId () yöntemini kullanın

app/code/core/Mage/Api/Model/Wsdl/Config.php

Yukarıda kullanılan unserialize()uygulama / kod / çekirdek / Mage / çekirdek / Yardımcı / String.php oluşturulan yöntem

app/code/core/Mage/Eav/Model/Entity/Attribute/Backend/Serialized.php
app/code/core/Mage/Rule/Model/Abstract.php

Yorum değişikliği

app/code/core/Mage/Core/Model/File/Validator/Image.php
app/code/core/Mage/Core/etc/system.xml

Yorum eklendi

app/code/core/Mage/Core/etc/config.xml

Maksimum şifre uzunluğu eklendi

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

Eklentiye izin verilen dosya uzantısı // $ _ allowFileExtensions = array ('log', 'txt', 'html', 'csv');

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

Ne değiştiğini bilmiyorum

app/design/adminhtml/default/default/template/backup/dialogs.phtml

Konu listesi

SUPEE-10415 sepet kontrolünü önler

magento içinde paypal içinde # 10415 hata kodunu almak


1

Bunu Magento EE 1.13.0.2'de denemek ve SUPEE-6482 kuruluysa, bu düzeltme ekinin hoş görünmediği görülüyor.

Checking patch app/code/core/Mage/Api/Model/Server/Adapter/Soap.php...
error: while searching for:
            ->setUseSession(false);

        $wsdlUrl = $params !== null
            ? $urlModel->getUrl('*/*/*', array('_current' => true, '_query' => $params))
            : $urlModel->getUrl('*/*/*');

        if( $withAuth ) {
            $phpAuthUser = $this->getController()->getRequest()->getServer('PHP_AUTH_USER', false);

error: patch failed: app/code/core/Mage/Api/Model/Server/Adapter/Soap.php:205

SUPEE-6482 çizgiyi ile $phpAuthUserdeğiştirdi

$phpAuthUser = rawurlencode($this->getController()->getRequest()->getServer('PHP_AUTH_USER', false));

Daha $phpAuthUserönce ->setUseSession(false);
aradaki
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.