Security Patch SUPEE-10266 - ปัญหาที่เป็นไปได้หรือไม่


36

แพทช์รักษาความปลอดภัยใหม่ออกมาสำหรับ Magento 1 โดยจัดการกับปัญหา 13 APPSEC

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

ปัญหาทั่วไปที่คุณต้องระวังเมื่อใช้โปรแกรมแก้ไขนี้

SUPEE-10266, Magento Commerce 1.14.3.6 และ Open Source 1.9.3.6 มีการปรับปรุงความปลอดภัยหลายอย่างที่ช่วยปิดการปลอมแปลงคำขอข้ามไซต์ (CSRF) การรั่วไหลของข้อมูลที่ไม่ได้รับอนุญาต รีลีสเหล่านี้ยังรวมถึงการแก้ไขปัญหาเกี่ยวกับการโหลดภาพและการชำระเงินโดยใช้การชำระเงินแบบขั้นตอนเดียว


ประสบปัญหาเมื่อใช้กับ 1.9.3.2 - magento.stackexchange.com/questions/193451/…
Shrenik

คำตอบ:


13

ข้อมูลสำคัญบางอย่างแบ่งปันที่นี่ส่วนใหญ่ไฟล์จาก Magento backend รายการไฟล์:

app/code/core/Mage/Admin/Model/Session.php
app/code/core/Mage/Adminhtml/Block/Notification/Grid/Renderer/Notice.php
app/code/core/Mage/Adminhtml/Block/Widget/Form/Container.php
app/code/core/Mage/Adminhtml/Controller/Action.php
app/code/core/Mage/Adminhtml/Model/LayoutUpdate/Validator.php
app/code/core/Mage/Adminhtml/controllers/CustomerController.php
app/code/core/Mage/Adminhtml/controllers/Newsletter/TemplateController.php
app/code/core/Mage/Checkout/controllers/CartController.php
app/code/core/Mage/Core/Model/Email/Template/Abstract.php
app/code/core/Mage/Core/Model/File/Validator/Image.php
app/code/core/Mage/Core/Model/Session/Abstract/Varien.php
app/code/core/Mage/Core/etc/config.xml
app/code/core/Mage/Rss/Helper/Data.php
app/code/core/Mage/Sales/Model/Resource/Order/Item/Collection.php
app/code/core/Zend/Serializer/Adapter/PhpCode.php
app/design/adminhtml/default/default/template/backup/dialogs.phtml
app/design/adminhtml/default/default/template/catalog/product/edit/options/type/file.phtml
app/design/adminhtml/default/default/template/customer/tab/view.phtml
app/design/adminhtml/default/default/template/login.phtml
app/design/adminhtml/default/default/template/notification/toolbar.phtml
app/design/adminhtml/default/default/template/oauth/authorize/form/login.phtml
app/design/adminhtml/default/default/template/resetforgottenpassword.phtml
app/design/adminhtml/default/default/template/sales/order/view/history.phtml
app/design/adminhtml/default/default/template/sales/order/view/info.phtml
app/design/install/default/default/template/install/create_admin.phtml
app/locale/en_US/Mage_Adminhtml.csv
downloader/template/login.phtml

สิ่งสำคัญต้องตรวจสอบสามไฟล์นี้

app/code/core/Mage/Checkout/controllers/CartController.php
app/code/core/Mage/Sales/Model/Resource/Order/Item/Collection.php
app/code/core/Mage/Core/Model/File/Validator/Image.php

แอป / รหัส / หลัก / ผู้วิเศษ / ชำระเงิน / ตัวควบคุม / CartController.phpเงื่อนไขเพิ่มเติมตรวจสอบรหัสลูกค้า :

diff --git app/code/core/Mage/Checkout/controllers/CartController.php app/code/core/Mage/Checkout/controllers/CartController.php
index 7c9f28f..bee6034 100644
--- app/code/core/Mage/Checkout/controllers/CartController.php
+++ app/code/core/Mage/Checkout/controllers/CartController.php
@@ -284,14 +284,16 @@ class Mage_Checkout_CartController extends Mage_Core_Controller_Front_Action
     public function addgroupAction()
     {
         $orderItemIds = $this->getRequest()->getParam('order_items', array());
+        $customerId   = $this->_getCustomerSession()->getCustomerId();

-        if (!is_array($orderItemIds) || !$this->_validateFormKey()) {
+        if (!is_array($orderItemIds) || !$this->_validateFormKey() || !$customerId) {
             $this->_goBack();
             return;
         }

         $itemsCollection = Mage::getModel('sales/order_item')
             ->getCollection()
+            ->addFilterByCustomerId($customerId)
             ->addIdFilter($orderItemIds)
             ->load();
         /* @var $itemsCollection Mage_Sales_Model_Mysql4_Order_Item_Collection */
@@ -709,4 +711,14 @@ class Mage_Checkout_CartController extends Mage_Core_Controller_Front_Action
         $this->getResponse()->setHeader('Content-type', 'application/json');
         $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
     }
+
+    /**
+     * Get customer session model
+     *
+     * @return Mage_Customer_Model_Session
+     */
+    protected function _getCustomerSession()
+    {
+        return Mage::getSingleton('customer/session');
+    }
 }

แอป / รหัส / core / Mage / การขาย / รุ่น / ทรัพยากร / สั่งซื้อ / รายการ / Collection.phpเพิ่มวิธีการเพิ่มเติมaddFilterByCustomerIdในคอลเลกชัน

diff --git app/code/core/Mage/Sales/Model/Resource/Order/Item/Collection.php app/code/core/Mage/Sales/Model/Resource/Order/Item/Collection.php
index ee83ad48..c02afdf 100644
--- app/code/core/Mage/Sales/Model/Resource/Order/Item/Collection.php
+++ app/code/core/Mage/Sales/Model/Resource/Order/Item/Collection.php
@@ -152,4 +152,20 @@ class Mage_Sales_Model_Resource_Order_Item_Collection extends Mage_Sales_Model_R
         $this->getSelect()->where($resultCondition);
         return $this;
     }
+
+    /**
+     * Filter by customerId
+     *
+     * @param int|array $customerId
+     * @return Mage_Sales_Model_Resource_Order_Item_Collection
+     */
+    public function addFilterByCustomerId($customerId)
+    {
+        $this->getSelect()->joinInner(
+            array('order' => $this->getTable('sales/order')),
+            'main_table.order_id = order.entity_id', array())
+            ->where('order.customer_id IN(?)', $customerId);
+
+        return $this;
+    }
 }

app / รหัส / core / Mage / core / รุ่น / ไฟล์ / ตรวจสอบ / Image.php

หาก 'General / reprocess_images / active' false ให้ข้ามการประมวลผลภาพอีกครั้ง หมายเหตุ:หากคุณปิดการประมวลผลภาพใหม่กระบวนการอัพโหลดภาพของคุณอาจทำให้เกิดความเสี่ยงด้านความปลอดภัย

diff --git app/code/core/Mage/Core/Model/File/Validator/Image.php app/code/core/Mage/Core/Model/File/Validator/Image.php
index 9d57202..6a939c3 100644
--- app/code/core/Mage/Core/Model/File/Validator/Image.php
+++ app/code/core/Mage/Core/Model/File/Validator/Image.php
@@ -91,6 +91,13 @@ class Mage_Core_Model_File_Validator_Image
         list($imageWidth, $imageHeight, $fileType) = getimagesize($filePath);
         if ($fileType) {
             if ($this->isImageType($fileType)) {
+                /**
+                 * if 'general/reprocess_images/active' false then skip image reprocessing.
+                 * NOTE: If you turn off images reprocessing, then your upload images process may cause security risks.
+                 */
+                if (!Mage::getStoreConfigFlag('general/reprocess_images/active')) {
+                    return null;
+                }
                 //replace tmp image with re-sampled copy to exclude images with malicious data
                 $image = imagecreatefromstring(file_get_contents($filePath));
                 if ($image !== false) {

หวังว่ามันจะเป็นประโยชน์ ฉันคิด


คุณช่วยกรุณาระบุว่าเราควรตรวจสอบปัญหาที่เป็นไปได้ของ CartController.php และ Collection.php อย่างไร จะหาข้อบกพร่องที่เป็นไปได้บนเว็บไซต์ได้ที่ไหน?
ไอคอน

ฉันได้อัปเดตไซต์ความปลอดภัย 3 แล้วทั้งสามไซต์นี้แทนที่ไฟล์ทั้งสองนี้ ตรวจสอบและอัพเดตสองไฟล์นี้อย่างระมัดระวัง ไม่มี Gitches เกิดขึ้นในทั้ง 3 ไซต์
Rama Chandran M

10

EE 1.14.2.4

Typo ในบรรทัดที่ 726 ของแพทช์: autocomplete="new-pawwsord" ( app/design/adminhtml/default/default/template/backup/dialogs.phtml)

แพทช์ดูเหมือนจะพลาด 2 ไฟล์ส่วนหน้า:

patched:

app\design\adminhtml\default\default\template\oauth\authorize\form\login-simple.phtml

ไม่ได้รับการติดตั้ง:

app\design\frontend\base\default\template\oauth\authorize\form\login-simple.phtml app\design\frontend\rwd\default\template\oauth\authorize\form\login-simple.phtml


นอกจากนี้อย่าลืมตรวจสอบการแทนที่ท้องถิ่น ... ฉันต้องแก้ไขการแทนที่ codepool ท้องถิ่นด้วยตนเอง app\design\adminhtml\default\default\template\sales\order\view\info.phtml


ดูquasiobjectคำตอบ 's สำหรับปัญหาที่เช็คเอาท์ onepage สร้างตั๋วการสนับสนุนองค์กรแล้วรอการตอบกลับจาก Magento หากคุณไม่ต้องการรอแพตช์ที่อัปเดตตัวแก้ไขที่อาจเกิดขึ้นคือการแก้ไขสถานะ "else" ในapp\design\frontend\enterprise\default\template\giftcardaccount\onepage\payment\scripts.phtmlการรวมองค์ประกอบ form_key ดังนี้:
if (($('p_method_' + methodName) && $('p_method_' + methodName).checked) || elements[i].name == 'form_key') { ...


CE 1.9.2.4

Typo ในบรรทัด 694 ของแพทช์: autocomplete="new-pawwsord" ( app/design/adminhtml/default/default/template/backup/dialogs.phtml)

นามสกุล TrueOrderEdit จะต้องมีการปะ ... การเปลี่ยนแปลงecho $_groupNameไปecho $this->escapeHtml($_groupName)ในแฟ้มต่อไปนี้:

app\design\adminhtml\default\default\template\orderedit\sales\order\view\edit.phtml app\design\adminhtml\default\default\template\orderedit\sales\order\view\history.phtml app\design\adminhtml\default\default\template\orderedit\sales\order\view\info.phtml


สุดท้ายไฟล์เทมเพลตหลักนี้ก็ควรได้รับการปะติดด้วยการอัพเดต $ _groupName เดียวกัน:

app\design\adminhtml\default\default\template\sales\order\view\edit.phtml


1.X ทุกรุ่น

หากคุณลบ/downloaderโฟลเดอร์ (หรือ/downloader/template) ออกจาก codebase ของคุณคุณอาจต้องแก้ไขไฟล์. sh ด้วยตนเองและลบส่วนสุดท้ายโดยเริ่มต้นด้วยdiff --git downloader/template/login.phtml downloader/template/login.phtml

เกี่ยวกับข้อผิดพลาดของคีย์ลับไม่ถูกต้องโปรดดูคำตอบของฉันที่นี่: Magento 1.9 คีย์ลับไม่ถูกต้อง โปรดรีเฟรชหน้านี้


ฉันยังพบความผิดพลาดในการแก้ไข 1.7.0.2 การเติมข้อความอัตโนมัติ = "ใหม่ pawwsord" ไม่ว่าในกรณีใด ๆ จะมีผลต่อการทำงานของรหัสหรือไม่? ถ้าเป็นเช่นนั้นอาจเป็น version2 ของการแก้ไขในทาง?
ไอคอน

ที่สำคัญการพิมพ์ผิดอยู่ในรหัสที่รับผิดชอบการหลอกลวงของ FireFox "นี่เป็นเขตข้อมูลจำลองที่ซ่อนอยู่เพื่อหลอกลวง firefox จากการป้อนรหัสผ่านอัตโนมัติ" ... ดูเหมือนไม่มีอะไรสำคัญเลย
ไอคอน

@kmdsax ฉันได้รับการแก้ไขจากฝ่ายสนับสนุนเพื่อแก้ไขปัญหา อัปเดตคำตอบของฉันพร้อมรายละเอียด
quasiobject

กรุณาช่วยฉันแก้ไขข้อผิดพลาดของฉันได้magento.stackexchange.com/q/204446/57334
zus

9

เราที่MageHost.proพบปัญหาใน patch สำหรับ Magento 1.9.1.1 ซึ่งเป็นไฟล์ patchPATCH_SUPEE-10266_CE_1.9.1.1_v1-2017-09-15-04-59-56.sh

ข้อผิดพลาด:

checking file app/code/core/Mage/Core/Model/File/Validator/Image.php
Hunk #1 FAILED at 90.
1 out of 1 hunk FAILED

ฉันแก้ไขโดยแทนที่บรรทัด 454-472 โดย 454-471 จาก PATCH_SUPEE-10266_CE_1.9.1.0_v1-2017-09-13-06-34-33.sh

รหัสเก่า, บรรทัด 454-472:

diff --git app/code/core/Mage/Core/Model/File/Validator/Image.php app/code/core/Mage/Core/Model/File/Validator/Image.php
index 7f7b9d0..8a28da2 100644
--- app/code/core/Mage/Core/Model/File/Validator/Image.php
+++ app/code/core/Mage/Core/Model/File/Validator/Image.php
@@ -90,7 +90,13 @@ class Mage_Core_Model_File_Validator_Image
         $fileInfo = getimagesize($filePath);
         if (is_array($fileInfo) and isset($fileInfo[2])) {
             if ($this->isImageType($fileInfo[2])) {
-                return null;
+                /**
+                 * if 'general/reprocess_images/active' false then skip image reprocessing.
+                 * NOTE: If you turn off images reprocessing, then your upload images process may cause security risks.
+                 */
+                if (!Mage::getStoreConfigFlag('general/reprocess_images/active')) {
+                    return null;
+                }
             }
         }
         throw Mage::exception('Mage_Core', Mage::helper('core')->__('Invalid MIME type.'));

ใหม่รหัสบรรทัด 454-471:

diff --git app/code/core/Mage/Core/Model/File/Validator/Image.php app/code/core/Mage/Core/Model/File/Validator/Image.php
index 8618bca..d3aba19 100644
--- app/code/core/Mage/Core/Model/File/Validator/Image.php
+++ app/code/core/Mage/Core/Model/File/Validator/Image.php
@@ -90,6 +90,13 @@ class Mage_Core_Model_File_Validator_Image
         list($imageWidth, $imageHeight, $fileType) = getimagesize($filePath);
         if ($fileType) {
             if ($this->isImageType($fileType)) {
+                /**
+                 * if 'general/reprocess_images/active' false then skip image reprocessing.
+                 * NOTE: If you turn off images reprocessing, then your upload images process may cause security risks.
+                 */
+                if (!Mage::getStoreConfigFlag('general/reprocess_images/active')) {
+                    return null;
+                }
                 //replace tmp image with re-sampled copy to exclude images with malicious data
                 $image = imagecreatefromstring(file_get_contents($filePath));
                 if ($image !== false) {

คุณเคยดูรุ่นอื่น ๆ บ้างไหม? ถ้าใช่เป็นปัญหาเดียวกันหรือไม่?
ไอคอน

1
@Icon เราทดสอบ ce-1.6.0.0 ce-1.6.1.0 ce-1.6.2.0 ce-1.7.0.0 ce-1.7.0.1 ce-1.7.0.2 ce-1.8.0.0 ce-1.8.0.0 ce-1.8.1.0 ce-1.9.0.0 ce -1.9.0.1 ce-1.9.1.0 ce-1.9.1.1 ce-1.9.2.0 ce-1.9.2.1 ce-1.9.2.2 ce-1.9.2.3 ce-1.9.2.4 ce-1.9.2.4 ce-1.9.3.0 ce-1.9.3.1 ce -1.9.3.2 ce-1.9.3.3 ce-1.9.3.4 ทุกรุ่นมีการติดตั้งแพตช์ก่อนหน้านี้ทั้งหมด หนึ่งเดียวที่มีข้อผิดพลาดของการแก้ไขคือ ce-1.9.1.1
Jeroen Vermeulen - MageHost

6

ดูเหมือนจะมีการเพิ่มเฉพาะคีย์ฟอร์ม 1 รายการในแพตช์นี้เท่านั้น

diff --git app/code/core/Mage/Adminhtml/Block/Widget/Form/Container.php app/code/core/Mage/Adminhtml/Block/Widget/Form/Container.php
index 8756f3f..1c5cf37 100644
--- app/code/core/Mage/Adminhtml/Block/Widget/Form/Container.php
+++ app/code/core/Mage/Adminhtml/Block/Widget/Form/Container.php
@@ -96,7 +96,10 @@ class Mage_Adminhtml_Block_Widget_Form_Container extends Mage_Adminhtml_Block_Wi

     public function getDeleteUrl()
     {
-        return $this->getUrl('*/*/delete', array($this->_objectId => $this->getRequest()->getParam($this->_objectId)));
+        return $this->getUrl('*/*/delete', array(
+            $this->_objectId => $this->getRequest()->getParam($this->_objectId),
+            Mage_Core_Model_Url::FORM_KEY => $this->getFormKey()
+        ));
     }

ดังนั้นหากคุณมีปัญหาในการลบวิดเจ็ตจากแผงควบคุมดูแลให้แน่ใจว่าคุณได้สร้าง url ลบของคุณโดยบล็อกและคุณไม่มีการแทนที่ของบล็อกนี้


ฉันจะแก้ปัญหาmagento.stackexchange.com/q/204446/57334นี้ได้อย่างไร
zus

5

ไม่สามารถชำระเงินใน EE 1.11+

ในapp/design/frontend/enterprise/default/template/giftcardaccount/onepage/payment/scripts.phtmlรหัสการตรวจสอบความถูกต้องของคีย์แบบฟอร์มได้ถูกลบออกไปแล้วและจะทำให้การชำระเงินเต็มจำนวนข้อมูลเพิ่มเติมที่นี่: https://magento.stackexchange.com/a/193442/2380

วิธีแก้ปัญหาในตอนนี้ (ในฐานะ V2 สำหรับ EE 1.11+ จะถูกนำออกใช้เพื่อแก้ไขปัญหานั้น): ย้อนกลับไฟล์เทมเพลตสำหรับทั้งสองenterprise/defaultและrwd/entrepriseธีม

ความแตกต่างระหว่าง patch และ version

แก้ไข: 1.9.3.6 เผยแพร่ดังนั้นข้อมูลนี้จะไม่เกี่ยวข้องอีกต่อไป

หนึ่งในปัญหาหลักที่ได้รับการยกตอนนี้คือ1.9.3.5 หายไป 3 แพทช์รักษาความปลอดภัยจากแพทช์ ดังนั้นฉันขอแนะนำให้ทำการปะเท่านั้นและยังไม่ได้อัปเดตเป็น 1.9.3.5


คุณมีข้อมูลเพิ่มเติมเกี่ยวกับสิ่งนี้หรือไม่ตัวอย่างเช่นไฟล์ที่ไม่ได้เปรียบเทียบใน 1.9.3.5?
ลุคร็อดเจอร์ส

สิ่งนี้ยังคงดำเนินต่อไปสำหรับ CE / Open Source หรือไม่ สำหรับ EE / Commerce ไม่มีการดาวน์โหลด 1.14.3.5 เพียง 1.14.3.6
7ochem

ในหน้าดาวน์โหลด CE / โอเพนซอร์สมีเพียง 1.9.3.6 (ตั้งแต่ 14 ก.ย. มันบอกว่า) และไม่มี 1.9.3.5 อีกต่อไป
7ochem

4
1.9.3.6 เปิดตัวเมื่อวานข้อมูลนี้ไม่เกี่ยวข้องอีกต่อไป
Ryan Hoerr

5

ยังคงพยายามที่จะตรวจสอบว่านี้ไม่ซ้ำกับร้านค้าของเราเนื่องจากแม่แบบที่กำหนดเอง อย่างไรก็ตามมันใช้งานไม่ได้เมื่อเราเปลี่ยนกลับ ฉันต้องการโพสต์ในกรณีที่คนอื่นสามารถรายงานได้เหมือนกัน

ใน EE 1.14.2.0 เราไม่สามารถผ่านขั้นตอนข้อมูลการชำระเงินของการชำระเงินโดยใช้โปรแกรมแก้ไข เราเป็นปัจจุบันถึง SUPEE-9767 v2 ก่อนที่จะใช้แพทช์ใหม่

ปัญหาของเราดูเหมือนว่าจะเกิดจากการลบออก|| elements[i].name == 'form_key'จาก:

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

มันถูกลบออกจากenablePaymentMethodsลูป ที่ดูเหมือนว่าจะปล่อยให้การป้อนข้อมูล form_key ที่ซ่อนอยู่ของปิดใช้งานและดังนั้นจึงไม่ผ่านไปยังตัวควบคุมเมื่อส่ง

<input name="form_key" type="hidden" value="X" disabled="">

จากนั้น$this->_validateFormKey()ล้มเหลวและคอนโทรลเลอร์ไม่ส่งคืนอะไร


อัปเดต 1 (2017-09-18) : ฉันส่งตั๋วไปยังฝ่ายสนับสนุนของ Magento ในวันศุกร์และได้รับการบอกว่า "พ่อค้ายังไม่ได้รายงาน [ยังไม่ได้]" แทนที่จะส่งการสำรองข้อมูลฉันพยายามทำซ้ำในการติดตั้งใหม่ทั้งหมดที่ 1.14.2.4 และ 1.14.3.4 ด้วยการติดตั้งโปรแกรมแก้ไขที่ใช้งานได้ ฉันสามารถคัดลอกและตอบกลับตั๋วได้ รอคำตอบใหม่

หมายเหตุ: ระบบ> การกำหนดค่า> ผู้ดูแลระบบ> ความปลอดภัย> เปิดใช้งานการตรวจสอบความถูกต้องของคีย์แบบฟอร์มเมื่อชำระเงินจะต้องเป็น "ใช่" หาก "ไม่" คุณจะไม่เห็นปัญหา


อัปเดต 2 (2017-09-18) : พบว่าฉันไม่สามารถทำซ้ำปัญหากับ 1.14.3.6 แต่เมื่อฉันตรวจสอบไฟล์เทมเพลตด้านบน|| elements[i].name == 'form_key'ยังคงมีอยู่ ดูเหมือนว่าแพทช์ไม่ควรลบออก ส่งข้อมูลนี้ไปยังฝ่ายสนับสนุนของ Magento ด้วย


อัปเดต 3 (2017-09-20):ฉันเพิ่งได้รับการแก้ไขเพื่อแก้ไขปัญหาสำหรับ 1.14.0.0–1.14.3.4 ซึ่งเพิ่งเรียกคืนform_keyบรรทัดไปยังเทมเพลต ขอการสนับสนุนสำหรับ SUPEE-10348


ปัญหาเดียวกันที่นี่ใน 1.14.2.4
kmdsax

ขอบคุณ @kmdsax ฉันยังส่งตั๋วและรอรับการยืนยันจากฝ่ายสนับสนุน
quasiobject

คุณลองทำซ้ำข้อผิดพลาดเดียวกันในเวอร์ชัน 1.9.2.4 CE หรือไม่
ไอคอน

1
@ ฉันไม่ได้ ฉันทำงานให้กับผู้ค้ารายเดียวและเราคือ EE อย่างไรก็ตามฉันไม่คิดว่ามันจะได้รับผลกระทบเนื่องจากเป็นบล็อกสคริปต์ของบัตรของขวัญ EE ไม่ควรมีอยู่ใน CE
quasiobject

4

เมื่อคุณไปที่ Magento Connect และหลังจากนั้นเมื่อคุณคลิก "กลับไปที่ผู้ดูแลระบบ" ที่มุมบนขวาของหน้า เมื่อกลับสู่แดชบอร์ดผู้ดูแลระบบคุณจะได้รับข้อความแสดงข้อผิดพลาด

ข้อความแสดงข้อผิดพลาด สีแดง: "คีย์ลับไม่ถูกต้องโปรดรีเฟรชหน้านี้"

เมื่อคุณรีเฟรชหน้ามันหายไป


อัปเดต: 15 กันยายน 2017

หากคุณเข้าสู่ระบบผู้ดูแลระบบ Magento สมมติว่า Dashboard หากไม่มีการออกจากระบบจากแผงควบคุมคุณจะไปและเปิดหน้าต่างเบราว์เซอร์อื่นในเบราว์เซอร์เดียวกันและไปที่ example.com/admin ระบบจะลงชื่อเข้าใช้อัตโนมัติและแสดงข้อความเดียวกันทั้งหมด

ข้อความแสดงข้อผิดพลาด สีแดง: "คีย์ลับไม่ถูกต้องโปรดรีเฟรชหน้านี้"

จนถึงตอนนี้มันเป็นปัญหาเดียวที่ฉันได้พบ ฉันไม่แน่ใจด้วยซ้ำว่ามันเป็นปัญหาใหญ่เพราะข้อความหายไปหลังจากรีเฟรช


บางทีนี่อาจมาจากการปิด Magento Connect: magento.com/blog/magento-news/…
Kevin Krieger

1
@KalvinKlien ฉันเป็น 1.7.0.2 ฉันเห็นข้อความนี้ทุกครั้งที่ฉันกลับไปกลับมาระหว่างผู้ดูแลระบบและ Magneto Connect (/ downloader) ฉันแค่พยายามค้นหาว่าคนอื่นเห็นหรือไม่ .. ดูเหมือนจะไม่เป็นปัญหาใหญ่
ไอคอน

3
ฉันเห็นสิ่งนี้ใน 1.9.2.1 เช่นกัน ใครบางคนได้ยื่นรายงานข้อผิดพลาดในตัวติดตามข้อผิดพลาดของ Magentoแล้ว
Michael Thessel

1
มันเป็นข้อผิดพลาดใน Mage_Adminhtml_Controller_Action :: preDispatch (): if ($_keyErrorMsg != '') { Mage::getSingleton('adminhtml/session')->addError($_keyErrorMsg); };ควรจะเป็นif (!$_isValidFormKey){ Mage::getSingleton('adminhtml/session')->addError($_keyErrorMsg); };
ลอร่า

1
อืมนี่เป็นวิธีแก้ปัญหาบางส่วนจนถึงตอนนี้ ฉันยังคงเห็นข้อผิดพลาดเป็นครั้งคราวไม่แน่ใจว่ามีตัวควบคุมอื่นที่มีปัญหานี้อยู่หรือไม่
Kalvin Klien

4

ฉันถาม Magento Support เกี่ยวกับปัญหาต่อไปนี้

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

พวกเขาตอบฉันเช้านี้และปล่อยแพทช์ใหม่PATCH_SUPEE-10348

วีโอไอพีเพิ่งแก้ปัญหาด้วยการย้อนกลับในไฟล์นี้

ดัชนี: แอป / ออกแบบ / ส่วนหน้า / องค์กร / ค่าเริ่มต้น / แม่แบบ / giftcardaccount / onepage / การชำระเงิน / scripts.phtml
================================================== =================
--- แอพ / ออกแบบ / ส่วนหน้า / องค์กร / ค่าเริ่มต้น / แม่แบบ / giftcardaccount / onepage / การชำระเงิน / scripts.phtml
+++ แอพ / ออกแบบ / ส่วนหน้า / องค์กร / ค่าเริ่มต้น / แม่แบบ / giftcardaccount / onepage / การชำระเงิน / scripts.phtml
@@ -35,6 +35,7 @@
             if (elements [i] .name == 'payment [method]'
                 || องค์ประกอบ [i] .name == 'การชำระเงิน [use_customer_balance]'
                 || องค์ประกอบ [i] .name == 'การชำระเงิน [use_reward_points]'
+ || องค์ประกอบ [i] .name == 'form_key'
             ) {
                 methodName = elements [i] .value;
                 if ((free && methodName == 'free') || (! free && methodName! = 'free')) {

1
สามารถยืนยันได้ว่าแพตช์นี้มีอยู่ในพอร์ทัลพันธมิตร
Luke Rodgers

ขอบคุณสำหรับข้อมูล. ฉันลืมที่จะให้ข้อมูล
cghisi

3

ฉันพบปัญหากับแม่แบบอีเมล, CSS ที่กำหนดเองและ modman หากคุณเช่นมีธีมตามrwd/defaultกำหนดเองskin/frontend/package/theme/css/email-inline.cssและไฟล์สกินของคุณถูกรวมผ่าน modman ผ่าน symlink CSS จะไม่ถูกเพิ่มไปยังแม่แบบอีเมลหลังจากใช้ SUPEE-10266 ปัญหาคือว่าในMage_Core_Model_Email_Template_Abstract::_getCssFileContentเช็คบางอย่างได้รับการแนะนำ:

                 '_theme' => $theme,
             )
         );
+        $filePath = realpath($filePath);
+        $positionSkinDirectory = strpos($filePath, Mage::getBaseDir('skin'));
+        $validator = new Zend_Validate_File_Extension('css');

-        if (is_readable($filePath)) {
+        if ($validator->isValid($filePath) && $positionSkinDirectory !== false && is_readable($filePath)) {
             return (string) file_get_contents($filePath);
         }

ฉันแก้ไขมันด้วยแฮ็คที่สกปรกพร้อมการapp/code/local/Mage/Core/Model/Email/Template/Abstract.phpลบล้างในขณะนั้น ฉันต้องลดการตรวจสอบเพื่อที่จะสามารถโหลดไฟล์ CSS จากไดเรกทอรี modman:

$filePath = realpath($filePath);
$baseDirectory = Mage::getBaseDir();
$fullSkinDirectory = Mage::getBaseDir('skin');
$relativeSkinDirectory = substr($fullSkinDirectory, strlen($baseDirectory));
$positionSkinDirectory = strpos($filePath, $relativeSkinDirectory);
$validator = new Zend_Validate_File_Extension('css');
$noDirectoryTraversal = strpos($filename, '..') === false;

if ($validator->isValid($filePath) && $positionSkinDirectory !== false && $noDirectoryTraversal
    && is_readable($filePath)) {
    return (string) file_get_contents($filePath);
}

มันจะไม่ตรวจสอบว่าเส้นทางรวมไดเรกทอรีผิวที่สมบูรณ์อีกต่อไปหรือไม่ แต่จะตรวจสอบว่าเส้นทางนั้นมีสตริงอยู่หรือไม่/skinและหากไม่ได้รวมอยู่..ด้วยซึ่งควรป้องกันการโจมตีผ่านไดเรกทอรี


1
ลบคำตอบของฉันออกเนื่องจากคุณมีความสมบูรณ์มากกว่า แฮ็คที่ฉันใช้คือตรวจสอบif (strpos($filename, '..') === false) { $positionSkinDirectory = 1; }แถวหลังจากที่$positionSkinDirectoryตั้งค่าไว้ สิ่งนี้จะช่วยหลีกเลี่ยงการแวะผ่านไดเรกทอรี
Peter O'Callaghan

ฉันต้องการทราบว่าการลดลงในกรณีนี้หมายถึงทำให้มีความเสี่ยงอีกครั้งและการใช้โซลูชันนี้เป็นความเสี่ยงด้านความปลอดภัยโดยตรง
Flyingmana

@ PeterO'Callaghan ความคิดที่ดี! ฉันเพิ่งเพิ่มเช็คของคุณไปยังรหัสคำตอบของฉัน
Simon

@ Flyingmana สิ่งนี้ควรลดความเสี่ยงลงอย่างมาก
Simon

2

นี่คือรายการทั้งหมดของแพตช์ที่ได้รับผลกระทบจากการautocomplete="new-pawwsord"พิมพ์ผิด:

CE 1.7.0.0-1.7.0.2      PATCH_SUPEE-10266_CE_1.7.0.2_v1-2017-09-13-06-27-12.sh:664
CE 1.8.0.0-1.8.1.0      PATCH_SUPEE-10266_CE_1.8.1.0_v1-2017-09-13-06-28-08.sh:665
CE 1.9.0.0-1.9.0.1      PATCH_SUPEE-10266_CE_1.9.0.1_v1-2017-09-13-06-31-01.sh:665
CE 1.9.1.0              PATCH_SUPEE-10266_CE_1.9.1.0_v1-2017-09-13-06-34-33.sh:733
CE 1.9.1.1              PATCH_SUPEE-10266_CE_1.9.1.1_v1-2017-09-15-04-59-56.sh:734
CE 1.9.2.0-1.9.2.4      PATCH_SUPEE-10266_CE_1.9.2.4_v1-2017-09-13-06-37-37.sh:694
CE 1.9.3.0-1.9.3.2      PATCH_SUPEE-10266_CE_1.9.3.2_v1-2017-09-13-06-38-58.sh:694
CE 1.9.3.3-1.9.3.4      PATCH_SUPEE-10266_CE_1.9.3.4_v1-2017-09-13-06-39-58.sh:694
EE 1.12.0.0             PATCH_SUPEE-10266_EE_1.12.0.0_v1-2017-09-13-08-09-14.sh:696
EE 1.12.0.1-1.12.0.2    PATCH_SUPEE-10266_EE_1.12.0.2_v1-2017-09-13-08-06-57.sh:696
EE 1.13.0.0-1.13.1.0    PATCH_SUPEE-10266_EE_1.13.1.0_v1-2017-09-13-08-04-05.sh:696
EE 1.14.0.0-1.14.0.1    PATCH_SUPEE-10266_EE_1.14.0.1_v1-2017-09-13-08-01-04.sh:696
EE 1.14.1.0             PATCH_SUPEE-10266_EE_1.14.1.0_v1-2017-09-13-07-57-59.sh:764
EE 1.14.2.0             PATCH_SUPEE-10266_EE_1.14.2.0_v1-2017-09-13-07-07-14.sh:764
EE 1.14.2.1-1.14.2.4    PATCH_SUPEE-10266_EE_1.14.2.4_v1-2017-09-13-06-57-21.sh:726
EE 1.14.3.0-1.14.3.2    PATCH_SUPEE-10266_EE_1.14.3.2_v1-2017-09-13-06-53-35.sh:716
EE 1.14.3.3-1.14.3.4    PATCH_SUPEE-10266_EE_1.14.3.3_v1-2017-09-13-06-51-06.sh:716

0

ใน Magento 1.8.1 ฉันพบปัญหาเกี่ยวกับไฟล์ต่อไปนี้:

app/code/core/Mage/Core/Model/File/Validator/Image.php
app/code/core/Mage/Core/etc/config.xml
app/locale/en_US/Mage_Adminhtml.csv

ฉันลงเอยด้วยการดาวน์โหลด Magento เวอร์ชันล่าสุดซึ่งไม่มีโปรแกรมแก้ไข ในกรณีนี้วีโอไอพี 1.9.3.4

การแทนที่ไฟล์ 'ที่เสียหาย' ด้วยไฟล์จากการดาวน์โหลดช่วยแก้ไขปัญหาได้ ฉันสามารถใช้โปรแกรมแก้ไขได้สำเร็จ

แต่ระวัง: ฉันขอแนะนำให้ย้อนกลับ 3 ไฟล์หลังจากทำการปะอีกครั้งและแก้ไขไฟล์ด้วยตนเอง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.