Security Patch SUPEE-9767 - ปัญหาที่อาจเกิดขึ้น?


108

แพทช์รักษาความปลอดภัยใหม่ออกมาสำหรับ Magento 1 โดยระบุประเด็นปัญหา APPSEC 16 เรื่อง: https://magento.com/security/patches/supee-9767

ช่องโหว่เจ็ดช่อง 8.0 หรือสูงกว่าสำหรับ CVSSv3 Severityและช่องโหว่ดังกล่าวกำลังถูกใช้งานในป่าดังนั้นนี่คือโปรแกรมแก้ไขที่สำคัญ ไซต์สามารถใช้SUPEE-9767หรืออัปเดตเป็น CE 1.9.3.3 / EE 1.14.3.3 ใหม่

มีปัญหาหรือข้อผิดพลาดอะไรบ้างที่ควรระวังเมื่อใช้ SUPEE-9767


อัพเดท 2017-07-12:

Magento ได้เปิดตัวSUPEE-9767 V2และCE 1.9.3.4เพื่อแก้ไขปัญหาต่างๆจากแพตช์เริ่มต้น หากคุณใช้ V1 คุณควรย้อนกลับและใช้ V2 หากคุณยังไม่ได้ทำการแก้ไขเพียงแค่ใช้ V2 และปัญหาส่วนใหญ่ที่เกิดขึ้นที่นี่จะไม่เกี่ยวข้อง


"ช่องโหว่เจ็ดช่อง 8.0 หรือสูงกว่าสำหรับ CVSSv3 Severity และช่องโหว่ดังกล่าวกำลังถูกใช้งานในป่าดังนั้นนี่จึงเป็นจุดวิกฤติที่สำคัญ" ฉันแค่ต้องการตรวจสอบ "ผู้โจมตี" จะต้องเข้าสู่ระบบของผู้ดูแลระบบเพื่อหาช่องโหว่เหล่านี้
PaddyD

3
ใช่คุณต้องมีสิทธิ์การเข้าถึงของผู้ดูแลระบบเพื่อใช้ประโยชน์ ...
MagenX

โปรแกรมปะแก้ดูเหมือนจะไม่หยุดจุดสิ้นสุดกำลังดุร้ายโดยทั่วไป (เช่น / rss / order / new) ซึ่งดูเหมือนจะเป็นวิธีที่บอทเตอร์ทั่วไปพยายามที่จะเข้าถึงพื้นที่ผู้ดูแลระบบหรือไม่?
Ricky Odin Matthews

1
ฉันใช้สิ่งนี้สำหรับ RSS @RickyOdinMatthews ใน. htaccess RewriteRule ^/?(index.phprss|index.php/rss/catalog|index.php/rss/order|rss/catalog|rss/order).*$ /no-route [R=301,L,NC]
Richard Feraro

@RichardFeraro ฉันใช้ nginx แต่ใช้วิธีแก้ปัญหาที่คล้ายกันอยู่แล้ว ฉันสังเกตว่าบ็อตมักจะสแกนหาและบังคับเดรัจฉานจุดสิ้นสุดเหล่านี้ว่า
Ricky Odin Matthews

คำตอบ:


107

นี่คือภาพรวมของฉันของแพทช์หลังจากขุดลงไป

ประหยัดเวลา : Experius มีตัวช่วยแก้ไขที่ช่วยให้คุณค้นหาไฟล์ในธีมที่กำหนดเองโมดูลที่กำหนดเองหรือการเขียนทับในเครื่องที่อาจต้องได้รับการแก้ไขด้วยตนเองคุณสามารถค้นหาได้ที่นี่: https://github.com/experius/Magento- 1 Experius-Patch-Helper # วีโอไอพี

ปุ่มชำระเงินในแบบฟอร์ม

ดังที่ได้กล่าวไว้ในการโพสต์อื่น ๆ แพทช์นี้เพิ่มแบบฟอร์มคีย์ไปยังแบบฟอร์มต่อไปนี้:

แบบฟอร์มการจัดส่งสินค้าในรถเข็น:

app/design/frontend/<package>/<theme>/template/checkout/cart/shipping.phtml

แบบฟอร์มเช็คเอาต์การเรียกเก็บเงินหลายจุด:

app/design/frontend/<package>/<theme>/template/checkout/multishipping/billing.phtml

Multishipping form checkout form:

app/design/frontend/<package>/<theme>/template/checkout/multishipping/shipping.phtml

Multishipping ฟอร์มการเช็คเอาต์ที่อยู่:

app/design/frontend/<package>/<theme>/template/checkout/multishipping/addresses.phtml

แบบฟอร์มการชำระเงินที่เรียกเก็บเงิน:

app/design/frontend/<package>/<theme>/template/checkout/onepage/billing.phtml

แบบฟอร์มเช็คเอาต์การจัดส่งสินค้า:

app/design/frontend/<package>/<theme>/template/checkout/onepage/shipping.phtml

แบบฟอร์มการชำระเงินการชำระเงิน:

app/design/frontend/<package>/<theme>/template/checkout/onepage/payment.phtml

วิธีการจัดส่งแบบฟอร์มการชำระเงิน:

app/design/frontend/<package>/<theme>/template/checkout/onepage/shipping_method.phtml

แบบฟอร์มเช็คเอาต์การเรียกเก็บเงินแบบถาวร:

app/design/frontend/<package>/<theme>/template/persistent/checkout/onepage/billing.phtml

ด้านบนของที่ไฟล์ JS ต่อไปนี้ได้รับการปรับปรุงให้เข้ากันได้กับการเปลี่ยนแปลงที่:

  • js/varien/payment.js
  • skin/frontend/base/default/js/opcheckout.js

สิ่งที่ต้องทำ:

หากคุณใช้กับเทมเพลตเวอร์ชันที่กำหนดเองคุณจะต้องอัปเดตเทมเพลตเหล่านี้ด้วยการเพิ่มรหัสต่อไปนี้ลงในพวกเขา:

<?php echo $this->getBlockHtml('formkey') ?>

หากคุณใช้โมดูลชำระเงินของบุคคลที่สามคุณจะต้องติดต่อกับพวกเขาเพื่อให้พวกเขาสามารถจัดหาโมดูลรุ่นที่อัปเดตได้

นอกจากนี้หากคุณมีไฟล์ JS ที่ระบุไว้ก่อนหน้าในเวอร์ชันที่กำหนดเองคุณจะต้องอัปเดตไฟล์ด้วย

ประหยัดเวลาของคุณ :

Fabian Schmengler เขียนสคริปต์เล็ก ๆ ที่น่าสนใจเพื่ออัปเดตทุกสิ่งให้คุณคุณสามารถค้นหาได้ที่นี่:

https://gist.github.com/schmengler/c42acc607901a887ef86b4daa7a0445b

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

รูปภาพอัพโหลดโทรกลับ

ตัวควบคุมแกลเลอรีรูปภาพได้รับการปรับปรุงเพื่อเพิ่มการตรวจสอบการโทรกลับ

สิ่งที่ต้องทำ

หากคุณใช้โมดูลที่กำหนดเองซึ่งอัปโหลดภาพด้วยรหัสที่มีลักษณะดังนี้:

        $uploader = new Mage_Core_Model_File_Uploader('image');
        $uploader->setAllowedExtensions(array('jpg','jpeg','gif','png'));
        $uploader->addValidateCallback('catalog_product_image',
            Mage::helper('catalog/image'), 'validateUploadFile');
        $uploader->setAllowRenameFiles(true);
        $uploader->setFilesDispersion(true);

ฉันขอแนะนำให้คุณอัปเดตรหัสนั้นโดยเพิ่มชิ้นส่วนต่อไปนี้หลังจากนั้น:

        $uploader->addValidateCallback(
            Mage_Core_Model_File_Validator_Image::NAME,
            Mage::getModel('core/file_validator_image'),
            'validate'
        );

symlinks

แพ็ตช์นี้จะลบฟิลด์การกำหนดค่าระบบที่อนุญาตให้คุณอนุญาตให้มีเทมเพลต symlink ในแบ็กเอนด์ จะใช้เป็นที่อยู่ภายใต้ระบบ> การตั้งค่าคอนฟิก> นักพัฒนา> รูปแบบ> อนุญาต symlinks ตอนนี้ส่วนเทมเพลตทั้งหมดหายไป

ยิ่งไปกว่านั้นฟิลด์นั้นจะถูกปิดใช้งานโดยค่าเริ่มต้นผ่าน app/etc/config.xml

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

วิธีเดียวที่ทำได้คือการเรียกใช้แบบสอบถาม SQL ต่อไปนี้

UPDATE core_config_data SET value = 0 WHERE path = "dev/template/allow_symlink";

การอธิบาย

ก่อนอื่นผมขอแนะนำให้คุณตรวจสอบทั้งสองโพสต์ที่จะช่วยให้คุณเข้าใจวัตถุประสงค์ของการปรับเปลี่ยน Symlink:

การดัดแปลงนี้เป็นการเรียกเนื้อหาที่อัปโหลดได้ (เช่นภาพ) ผ่านคำสั่งเทมเพลต

ปัญหาที่เกี่ยวข้องกับ symlink นั้นจะใช้ประโยชน์ได้เฉพาะกับการเข้าถึงของผู้ดูแลระบบและ Magento ได้เพิ่มการป้องกันเพิ่มเติมเกี่ยวกับการอัปโหลดภาพเช่นกัน

โปรดทราบว่าพวกเขามีการป้องกันบางอย่างจากวิธีที่รู้จักในการใช้ประโยชน์นอกเหนือจากการตั้งค่าตัวเอง

สิ่งที่ต้องทำ : ถ้าชอบฉันคุณกำลังใช้ modman หรือนักแต่งเพลงกับ symlink เทมเพลตคุณจะต้องเจอกับปัญหาบางอย่าง ฉันยังคงพยายามหาสิ่งที่ดีที่สุดที่จะทำที่นี่นอกเหนือจากการจัดการกับแบบสอบถาม SQL

โพสต์หลักเกี่ยวกับปัญหานี้: SUPEE-9767, modman และ symlink

รายการปัญหาที่เป็นไปได้

V2 เปิดตัวตั้งแต่โพสต์ดั้งเดิม อย่าลืมอัพเกรด

เป็นโรคจิต

คำว่า 'ยืนยัน' ใช้สำหรับข้อบกพร่องที่ยืนยันแล้ว หากไม่มีอยู่นั่นหมายความว่าอาจเป็นข้อผิดพลาด แต่ยังไม่ได้รับการยืนยัน

ก้อนใหญ่ล้มเหลว

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

  • สำรองไฟล์ที่คุณได้รับข้อผิดพลาด Hunk Failed
  • ดาวน์โหลดไฟล์ต้นฉบับจากเวอร์ชั่น Magento ของคุณ
  • เปรียบเทียบไฟล์ทั้งสอง

หากไฟล์แตกต่างกันคุณจะต้องใช้โปรแกรมปะแก้กับไฟล์ต้นฉบับจากนั้นนำการเปลี่ยนแปลงที่กำหนดเองไปใช้ใหม่อย่างสะอาดเช่น:

  • เทมเพลตที่กำหนดเองในโฟลเดอร์ธีมที่กำหนดเอง
  • local.xml
  • แอป / รหัส / ไฟล์ในเครื่อง

หากไฟล์ไม่แตกต่างกันแสดงว่าเป็นปัญหาสิทธิ์หรือ "บั๊ก" ในชุดข้อมูลแก้ไข


1
@ อิออนไม่ หากต้องการตรวจสอบอีกครั้งให้ใช้เครื่องมือที่ฉันอ้างถึงที่ด้านบนสุดของคำตอบของฉัน
Raphael at Digital Pianism

1
เพียงเพิ่มรายการของ "ปัญหาอื่น ๆ ": ปรากฏว่าmagento.stackexchange.com/questions/167616/ไม่ได้รับการแก้ไขในเวอร์ชันล่าสุดเช่นกัน
Anton Boritskiy

1
@RaphaelatDigitalPianism: magento.stackexchange.com/q/177560/51361

1
นอกจากนี้ในรายการอีก: แพทช์แบ่ง multishipping สำหรับชุดรูปแบบเริ่มต้นmagento.stackexchange.com/questions/177681/…
Aad Mathijssen

1
'ลายน้ำรับพื้นหลังสีดำเมื่อโปร่งใส' - สามารถยืนยันได้ว่าถูกต้อง สิ่งนี้จะเกิดขึ้นเมื่อคุณอัปโหลด png โปร่งใสในหน่วยเซนติเมตร
pixiemedia

42

ปัญหาที่ 1: form_key ไม่ถูกต้องที่หน้าเช็คเอาต์

วีโอไอพีเพิ่มform_keyในรูปแบบส่วนใหญ่

ถ้าคุณมีusing default onepage and using custom themeแล้วคุณจะเริ่มได้รับform_keyปัญหา** ที่เช็คเอาท์แต่ละขั้นตอน **;

คุณควรเพิ่มแบบฟอร์มคีย์ที่ <?php echo $this->getBlockHtml('formkey') ?>

ไปที่รูปแบบของไฟล์เช็คเอาต์แต่ละไฟล์หากไฟล์ด้านล่างออก

  • app/design/frontend/[Your_Package]/[YOUR_THEME]/template/checkout/onepage/billing.phtml
  • app/design/frontend/[Your_Package]/[YOUR_THEME]/template/checkout/onepage/payment.phtml
  • app/design/frontend/[Your_Package]/[YOUR_THEME]/template/checkout/onepage/shipping.phtml

  • app/design/frontend/[Your_Package]/[YOUR_THEME]/template/checkout/onepage/shipping_method.phtml

หากไฟล์เทมเพลตกำลังเรียกใช้จากชุดรูปแบบพื้นฐานมันจะไม่สร้างปัญหา เพราะ patch จะทำการอัพเดทไฟล์เหล่านั้นโดยอัตโนมัติ

หมายเหตุ: <?php echo $this->getBlockHtml('formkey') ?>ควรอยู่ในแท็กของฟอร์มเสมอ

 <form action="" .....>
     <fieldset>
      .......
       <?php echo $this->getBlockHtml('formkey') ?>
     </fieldset>
 </form>

** หากคุณใช้การชำระเงินแบบหลายขั้นตอนของ Magento ต้องทำที่

ไฟล์ด้านล่าง:

ปัญหาที่ 2: ปัญหา form_key ไปที่แบบฟอร์มการจัดส่งสินค้าที่หน้ารถเข็น:

เพิ่ม form_key ที่แบบฟอร์มการจัดส่งโดยประมาณที่หน้ารถเข็น

จากนั้นจะต้องเพิ่มคีย์แบบฟอร์ม <?php echo $this->getBlockHtml('formkey') ?>

ที่ app/design/frontend/{Your_Package}/{YOUR_THEME]/template/checkout/cart/shipping.phtml

ปัญหาที่ 3: ข้อผิดพลาดการชำระเงินของวีโอไอพี onepage opcheckout.js

หากคุณใช้การชำระเงิน onepage เริ่มต้นและมีopcheckout.js ควรตรวจสอบ

if (elements[i].name=='payment[method]' || elements[i].name == 'form_key') {มีอยู่ที่ opcheckout.js

หากไม่ออกให้เปลี่ยนใหม่

if (elements [i] .name == 'payment [method]') {

กับ

if (elements [i] .name == 'payment [method]' || องค์ประกอบ [i] .name == 'form_key') {

สำหรับกรณีของ issue1, issue2, issue3, ฉบับที่สามารถแก้ไขได้อย่างง่ายดายโดยใช้ @FabianSchmengler 's สคริปต์add-checkout-form-key.sh มันจะแก้ไขปัญหาในไฟล์ชุดรูปแบบที่เปิดกว้างของคุณ

ปัญหาที่ 4: รหัสฟอร์มไม่ถูกต้องหลังจากลงชื่อเข้าใช้ของลูกค้าเมื่อ Mage_Customer_Model_Session เขียนใหม่

หากMage_Customer_Model_Sessionชั้นเรียนเขียนใหม่หรือเรียกจาก

app/code/local/Mage/Customer/Model/Session.phpจากนั้นคุณอาจได้รับปัญหา form_key เมื่อเราตั้งค่าลูกค้าสำหรับเซสชันโดยใช้setCustomerAsLoggedIn()/ หรือหลังจากที่ลูกค้าตั้งค่าไว้ที่เซสชัน

ในกรณีนี้คุณจะต้องเพิ่ม

Mage :: getSingleton ( 'หลัก / ครั้ง) -> renewFormKey ();

ที่ setCustomerAsLoggedIn () ก่อนการโทร

Mage::dispatchEvent('customer_login', array('customer'=>$customer));

  public function setCustomerAsLoggedIn($customer)
    {
        $this->setCustomer($customer);
        $this->renewSession();
        // add this  for patch -9767
        Mage::getSingleton('core/session')->renewFormKey();
       // end this for patch 9767
        Mage::dispatchEvent('customer_login', array('customer'=>$customer));
        return $this;
    }

ปัญหาที่ 5: ปัญหา Form_key หลังจากออกจากระบบ

หลังจากออกจากระบบลูกค้าจากเซสชันคุณอาจเริ่มต้นปัญหาเซสชันถ้าหากMage_Customer_Model_Sessionคลาสเขียนใหม่หรือถูกเรียกจาก

app/code/local/Mage/Customer/Model/Session.php

ในความต้องการเดียวกันนี้สำหรับกรณีนี้:

   protected function _logout()
    {
        $this->setId(null);
        $this->setCustomerGroupId(Mage_Customer_Model_Group::NOT_LOGGED_IN_ID);
        $this->getCookie()->delete($this->getSessionName());
// add this  for patch -9767
Mage::getSingleton('core/session')->renewFormKey();
        return $this;
    }

คำแนะนำ:

คำแนะนำ 1: เพื่อแก้ไขปัญหาของ supee-9767คุณสามารถใช้แพทช์https://github.com/experius/Magento-1-Experius-Patch-Helper

นี่เป็นทางออกหนึ่งที่ดีที่สุดในตอนนี้

หมายเหตุก่อนหน้านี้ฉันขอแนะนำอย่างยิ่งให้ทำการสำรองไฟล์และสำรองฐานข้อมูลหรือสำรองระบบทั้งหมด


คำแนะนำ 2: ใช้คุณสมบัติการแก้ไขบน ONESTEP CHECKOUT ของคุณ

เรารู้ว่า patch supee-9767 release เพื่อความปลอดภัยหากคุณใช้ ONESTEP CHECKOUT คุณควรเพิ่มการตรวจสอบ form_key เพื่อบันทึก SAVE ของ onestep controller controller ของคุณ

สมมติว่าสำหรับรายละเอียดวิธีการจัดส่งเช็คเอาต์การชำระเงินล่วงหน้าของคุณใช้ saveShippingmethod () จากนั้นคุณควรเพิ่ม

if ($this->isFormkeyValidationOnCheckoutEnabled() && !$this->_validateFormKey()) {
           return;
      }

นอกจากนี้คุณต้องเพิ่มรหัสฟอร์ม <?php echo $this->getBlockHtml('formkey') ?> ที่ส่วนการเช็คเอาต์ไฟล์ phtml ของคุณเอง

ลิงค์ที่เกี่ยวข้อง

https://peterocallaghan.co.uk/2017/06/appsec-1281-dangerous-symlinks/


1
ซับในที่ดีและรวดเร็วเพื่อค้นหาไฟล์เทมเพลตที่กำหนดเองของคุณสำหรับคีย์ฟอร์มในการชำระเงิน ค้นหาแอพ / ออกแบบ / ส่วนหน้า | grep -E "checkout / onepage / (การเรียกเก็บเงิน | การชำระเงิน | การจัดส่ง | shipping_method) .phtml" | grep -v "base / default" | grep -v "rwd / default"
Peter Jaap Blaakmeer

6
หรืออัปเดตทันทีด้วยสายการบินที่ยาวกว่าเล็กน้อย: gist.github.com/schmengler/c42acc607901a887ef86b4daa7a0445b
Fabian Schmengler

นั่นคือ @FabianSchmengler เวทมนต์ !!! :)
Amit Bera

@FabianSchmengler ยอดเยี่ยมนั่นมันใช้ได้!
Peter Jaap Blaakmeer

1
@AmitBera FYI: ปลั๊กอินการชำระเงินบางส่วนใช้ AJAX เพื่อส่งการเรียกเก็บเงิน / การจัดส่ง / ฯลฯ ฉันแค่ต้องแก้ไขมัน วิธีง่าย ๆ ในการทำคือวาง <script> var formKey = "<? php echo Mage :: getSingleton ('core / session') -> getFormKey ();?>"; </script> เข้าสู่ส่วนหัวของธีม จากนั้นคุณสามารถเพิ่ม form_key: formKey เป็นพารามิเตอร์ในการส่ง AJAX แน่นอนทดสอบแบบฟอร์มหลังจากเพื่อยืนยันการส่งพารามิเตอร์ใหม่และแก้ไขคอนโทรลเลอร์เพื่อจัดการกับมันตามที่คุณกล่าวถึงในโพสต์ของคุณ
Kalvin Klien

26

จากการผ่านครั้งแรกของฉันเมื่อตรวจสอบไฟล์แพทช์ ...

  • เพิ่มการตั้งค่าใหม่admin/security/validate_formkey_checkoutแล้ว เมื่อเปิดใช้งานจะมีการตรวจสอบแบบฟอร์มเช็คเอาต์ว่ามีคีย์ฟอร์มอยู่หรือไม่ หากไฟล์เทมเพลตอยู่ในชุดรูปแบบพวกเขาจะต้องอัปเดตที่นั่น ดูเหมือนว่าการตั้งค่านี้จะปิดโดยปริยาย
  • Symlinks ดูเหมือนจะไม่ได้รับอนุญาตตามค่าเริ่มต้น (ในapp/etc/config.xml) นอกจากนี้ความสามารถในการอนุญาตให้ดูเหมือนว่าจะถูกลบออกจากการกำหนดค่าผู้ดูแลระบบ อย่างไรก็ตามหากไซต์ของคุณเปิดใช้งาน symlink อย่างชัดเจนก่อนหน้านี้การตั้งค่าจะถูกบันทึกไว้ในฐานข้อมูลโดยแทนที่การเปลี่ยนแปลงนี้
  • คุณต้องล้างทั้งแคชและแคชแบบเต็มหน้าเมื่อใช้โปรแกรมแก้ไขนี้ ข้อยกเว้นการออกแบบจะถูกบันทึกในรูปแบบที่เข้ากันไม่ได้กับการถอดรหัส คุณจะเห็นข้อผิดพลาดเช่น "การถอดรหัสล้มเหลว: ข้อผิดพลาดทางไวยากรณ์" หากคุณไม่ได้ล้างแคชหน้า

1
คุณสามารถเข้าไปแก้ไขด้วย hex และเพิ่มลงในฐานข้อมูลได้ด้วยตัวเอง แต่นั่นอาจจะเป็นเรื่องเล็กน้อยสำหรับคนส่วนใหญ่
cat

1
หากคุณบางคนกำลังใช้ CDN เช่น cloudflare ตรวจสอบให้แน่ใจว่าได้ล้างแคชแล้ว ฉันลองเช็คเอาต์โดยใช้ CDN และมันจะไม่ผ่านหน้าการชำระเงิน ช่วงเวลาที่ฉันล้างแคชและเปิดใช้งานโหมดการพัฒนาทุกอย่างเป็นไปได้ด้วยดี
ไอคอน

14

base/defaultไฟล์ด้านล่างนี้มีผลกับแพทช์นี้หากไฟล์นี้อยู่ในชุดรูปแบบของคุณโปรดทำการเปลี่ยนแปลงตามนั้น

app/design/frontend/base/default/template/checkout/cart/shipping.phtml

app/design/frontend/base/default/template/checkout/multishipping/billing.phtml

app/design/frontend/base/default/template/checkout/multishipping/shipping.phtml

app/design/frontend/base/default/template/checkout/onepage/billing.phtml

app/design/frontend/base/default/template/checkout/onepage/payment.phtml

app/design/frontend/base/default/template/checkout/onepage/shipping.phtml

app/design/frontend/base/default/template/checkout/onepage/shipping_method.phtml

app/design/frontend/base/default/template/persistent/checkout/onepage/billing.phtml

ในphtmlไฟล์ด้านบนทั้งหมดด้านล่างบรรทัดสำคัญของแบบฟอร์มจะถูกเพิ่มดังนั้นโปรดเพิ่มบรรทัดนี้ในไฟล์ phtml ของคุณที่เกี่ยวข้อง

 <?php echo $this->getBlockHtml('formkey') ?>

สำหรับปัญหาด้านบน @fabian สร้างสคริปต์ซึ่งจะเพิ่มคีย์ฟอร์มแม้ในไฟล์ธีมของคุณ

https://gist.github.com/schmengler/c42acc607901a887ef86b4daa7a0445b

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

  sh filename.sh

และหนึ่งbase/defaultการเปลี่ยนแปลงในJsไฟล์

  skin/frontend/base/default/js/opcheckout.js

ดังนั้นหากjsไฟล์นี้โหลดจากธีมของคุณให้ทำตามขั้นตอนด้านล่าง

ลบสายเป่า

 if (elements[i].name=='payment[method]') {

และเพิ่มบรรทัดด้านล่างแทนด้านบน

 if (elements[i].name=='payment[method]' || elements[i].name == 'form_key') {

แก้ไข

และหากคุณใช้ส่วนขยายการชำระเงินใด ๆ ที่แทนที่ด้านล่างไฟล์ให้เพิ่มบรรทัดแบบฟอร์มสำคัญในไฟล์ phtml ของส่วนขยายการชำระเงิน

EDIT2 - ปัญหา

1) ข้อผิดพลาดที่saveBillingAction ()หรือการรับคีย์ฟอร์มเป็นโมฆะหรือปัญหาคีย์ฟอร์ม: Patch 9767 ได้รับคีย์ฟอร์มที่ไม่ถูกต้อง

2) ก้อนใหญ่ # 1 ล้มเหลวที่ 225 1 จาก 1 ก้อนใหญ่ล้มเหลว - บันทึกปฏิเสธไปยังแอปไฟล์ / ออกแบบ / ส่วนหน้า / องค์กร / ค่าเริ่มต้น / แม่แบบ / ถาวร / ชำระเงิน / onepage / billing.phtml: SUPEE-9767 - ก้อนใหญ่ # 1 ล้มเหลวที่ 225. 1 จาก 1 ก้อนใหญ่ล้มเหลว

3) การบันทึกปฏิเสธไปยังแอปไฟล์ / รหัส / คอร์ / องค์กร / PageCache / รุ่น / Observer.php.rej: SUPEE-9767 ข้อผิดพลาด: ไม่สามารถใช้ / แก้ไขซ้ำได้

4) SUPEE-9767, modman และ symlink: symlink SUPEE-9767, modman และ symlink

5) แอพ / ออกแบบ / frontend / rwd / default / layout / page.xml Hunk # 1 FAILED ที่ 36 Hunk # 2 FAILED ที่ 54 2 จาก 2 hunks ล้มเหลว: SUPEE-9767 ข้อผิดพลาด

6) 1 จาก 1 ก้อนใหญ่ล้มเหลว - บันทึกปฏิเสธไปยังแอปไฟล์ / รหัส / core / Mage / ขาย / รุ่น / อ้าง / Item.php: Magento 1.9.2.2 SUPEE-9767 Patch ERROR

7) ข้อผิดพลาดเกี่ยวกับการเช็คเอาต์ onestep (อีกครั้งนี่เป็นปัญหาสำคัญของฟอร์ม): SUPEE-9767 Magento CE 1.9.3.3 การชำระเงิน Onestep ไม่ทำงานกับการตรวจสอบคีย์ฟอร์มเมื่อเปิดใช้งาน Checkout

8) ปัญหาการลงทะเบียนลูกค้าหนึ่งขั้นตอน: SUPEE-9767 Patch / CE 1.9.3.3 - การชำระเงินแบบหน้าเดียว - ปัญหาการลงทะเบียนลูกค้า

9) แอป / รหัส / core / Mage / Core / รุ่น / ไฟล์ / Validator / Image.php: Magento SUPEE 9697 1.9.2.2 ล้มเหลวที่ Image.php


1
แพทช์เวอร์ชั่น 2 ควรจะเปิดให้ใช้งานเร็ว ๆ นี้ ข้อบกพร่องควรได้รับการแก้ไข
ไอคอน

1
@icon รอ v2
Murtuza Zabuawala

9

โปรดทราบว่า Symlinks จะถูกปิดใช้งานโดยค่าเริ่มต้นในการติดตั้ง Magento ใหม่ผู้ดูแลระบบ YES / NO ค่ากำหนดค่าเริ่มต้นเป็น 'ไม่' ตอนนี้การอัปเดตจะปิดการใช้งาน symlink ใน config.xml อย่างชัดเจนและเพื่อเป็นการป้องกันเพิ่มเติมยังลบส่วนเทมเพลตออกจาก admin-> ผู้พัฒนาซึ่งมีตัวเลือกการกำหนดค่า

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

ผู้ใช้ที่ใช้modmanเพื่อจัดการโมดูล Magento 1.x ควรตรวจสอบให้แน่ใจว่าพวกเขาไม่ได้ปิดการใช้งาน symlinkเพราะจะเป็นการปิดการใช้งานโมดูล modman

ผู้ดูแลระบบที่มีความรับผิดชอบสามารถเปิดใช้งานส่วนผู้ดูแลระบบ symlink อีกครั้งโดยค้นหาการเปลี่ยนแปลง diff ในส่วนเทมเพลตในแอพ / code / core / Mage / Core / etc / system.xml และเพิ่มส่วนใน system.xml ของคุณที่บรรทัด 600 symlink การตรวจสอบซ้ำยังคงเปิดใช้งานด้วย

n98-magerun.phar config: dump | grep symlink

นี่คือไฟล์ diff สำหรับ magento1933 และ magento1932 เพื่อช่วยระบุการเปลี่ยนแปลงในธีมเริ่มต้นซึ่งอาจส่งผลต่อธีมที่คุณกำหนดเอง / ขยาย

diff -r magento1933 magento1932> https://pastebin.com/ADzMBLhr


เหตุใดพวกเขาจึงลบตัวเลือก Symlinks ออกไปตอนนี้จะมีช่องโหว่ที่เปิดให้สาธารณะ (นอกผู้ใช้ผู้ดูแลระบบ) หรือมีความเสี่ยงหากอยู่ในสภาพแวดล้อมที่ใช้ร่วมกัน
PaddyD

กระทู้นี้ดูเหมือนจะตอบคำถามของฉัน: magento.stackexchange.com/questions/176952/ …
PaddyD

Symlinks ถูกปิดใช้งานด้วยเหตุผล ฉันแนะนำให้คัดลอกแทน symlink: magento.stackexchange.com/a/177149/54863
Barryvdh

9

ปัญหา: การใช้ php7 บางครั้งเกิดข้อผิดพลาดต่อไปนี้:

Decoding failed: Syntax error

#0 /______/app/code/core/Enterprise/PageCache/Model/Observer.php(179): Zend_Json::decode('')
#1 /______/app/code/core/Enterprise/PageCache/Model/Observer.php(215): Enterprise_PageCache_Model_Observer->_loadDesignExceptions()
#2 /______/app/code/core/Enterprise/PageCache/Model/Observer.php(125): Enterprise_PageCache_Model_Observer->_saveDesignException()
#3 /______/app/code/core/Mage/Core/Model/App.php(1358): Enterprise_PageCache_Model_Observer->cacheResponse(Object(Varien_Event_Observer))
#4 /______/app/code/core/Mage/Core/Model/App.php(1337): Mage_Core_Model_App->_callObserverMethod(Object({custom extensio}_Model_Rewrite_PageCache_Observer), 'cacheResponse', Object(Varien_Event_Observer))
#5 /______/app/Mage.php(456): Mage_Core_Model_App->dispatchEvent('controller_fron...', Array)
#6 /______/app/code/core/Mage/Core/Controller/Varien/Front.php(182): Mage::dispatchEvent('controller_fron...', Array)
#7 /______/app/code/core/Mage/Core/Model/App.php(365): Mage_Core_Controller_Varien_Front->dispatch()
#8 /______/app/Mage.php(691): Mage_Core_Model_App->run(Array)
#9 /______/index.php(105): Mage::run('brandfield_nl', 'store')
#10 {main}

ค่อนข้างแน่ใจว่าเวอร์ชั่น Zend ต้องทำอะไรกับมัน การแก้ไขอย่างรวดเร็วคือสิ่งนี้ แต่แน่นอนว่าไม่ถูกต้อง:

-> app / code / core / Enterprise / PageCache / Model / Observer.php: 244 แทนที่ด้วย:

    if ($cachedSslOffloaderHeader !== false) {
        $cachedSslOffloaderHeader = trim(@Zend_Json::decode($cachedSslOffloaderHeader));
    }

-> และแอพ / รหัส / แกน / องค์กร / PageCache / รุ่น / Observer.php: 177 ด้วย:

    if ($exceptions !== false) {
        $exceptions = Zend_Json::decode($exceptions);
    }

แน่นอนสร้าง addon เพื่อเขียนนี้ แต่ฉันแน่ใจว่ามีบางสิ่งที่ดีกว่าที่จะทำที่นี่

ปรับปรุง (ทางออกที่ดีกว่า)

-> ไปที่: lib / Zend / Json.php และหลังบรรทัด 76 เพิ่ม:

    if ((float)phpversion() >= 7.0
        && empty($encodedValue)
    ) {
        return null;
    }

สร้างส่วนขยายของคุณเพื่อแทนที่มันและอย่าแก้ไขไฟล์หลัก


ล้างแคชเรียบร้อยแล้ว นี่ไม่ใช่ปัญหาเดียวกัน
folektoras133

2
เราตีปัญหาเดียวกันนี้ - ย้อนกลับ app / รหัส / หลัก / องค์กร / PageCache / รุ่น / Observer.php ลบออกปัญหา แต่เห็นได้ชัดว่าไม่ได้การแก้ไขที่ถูกต้อง, การป้องกันเพียง a:5:{i:0;s:29:"Decoding failed: Syntax error";i:1;s:1376:"#0 app/code/core/Enterprise/PageCache/Model/Observer.php(177): Zend_Json::decode('a:0:{}')
Judder

9

ปัญหา: รหัสไดนามิกหรือ css ปิดใช้งานองค์ประกอบองค์ประกอบป้อนข้อมูลคีย์เมื่อทำการเช็คเอาท์

ปัญหาที่ฉันได้เห็นคือที่รหัสแบบไดนามิก (paypal บวก) ในกระบวนการเช็คเอาต์หนึ่งหน้าเขียนทับองค์ประกอบfieldsetในรูปแบบวิธีการชำระเงินขั้นตอนเดียวแบบ html - การลบหรือปิดการใช้งาน (กับ CSS) องค์ประกอบ form_key ที่ซ่อนอยู่

การแก้ไขคือเพื่อให้แน่ใจว่าองค์ประกอบคีย์ฟอร์มไม่ได้ถูกปิดการใช้งานโดยรหัสแบบไดนามิกหรือ CSS ใด ๆ การย้ายรหัส formkey นอกองค์ประกอบfieldsetอาจช่วยได้เช่นกัน

<form>
    <?php echo $this->getBlockHtml('formkey') ?>
    <fieldset>
        <?php echo $this->getChildHtml('methods') ?>
    </fieldset>
</form>

คุณสามารถยืนยันได้อย่างง่ายดายว่ามีการตรวจพบ form_key และส่งไปยังตัวควบคุมหน้าเดียวโดยตรวจสอบคำขอเครือข่าย ajax ในเบราว์เซอร์ของคุณเมื่อคุณดำเนินการตามวิธีการเช็คเอาต์แต่ละวิธีควรรวมคีย์ฟอร์มในข้อมูลฟอร์ม ajax key ไม่ได้อยู่ที่นั่น แต่ซอร์สโค้ด Magento ได้รับการตรวจสอบ patched สำหรับโค้ดภายนอกที่มีผลต่อองค์ประกอบสำคัญของฟอร์มเช่น css หรือการเปลี่ยนแปลงด้านไคลเอนต์แบบไดนามิก

ป้อนคำอธิบายรูปภาพที่นี่


2
การแก้ไขเล็กน้อยนี้ดูเหมือนจะไม่ได้ผลสำหรับฉันกับ EE ฉันพบว่าไฟล์ที่app/design/frontend/[package]/[theme]/template/giftcardaccount/onepage/payment/scripts.phtml จำเป็นต้องได้รับการอัปเดตเช่นกัน: บรรทัด 35-38 จำเป็นต้องได้รับการอัปเดตเพื่อรวม|| elements[i].name == 'form_key'กับตัวเลือกอื่น ๆ เพื่อให้ฟิลด์ฟอร์ม form_key ถูกปิดใช้งาน
Greg Nickoloff

ขอบคุณ g-man1066! นั่นคือปัญหาที่ฉันมี
grafikchaos

9

ปัญหา: การแก้ไขที่ขาดหายไปใน head-simple.phtml

app/design/adminhtml/default/default/template/oauth/authorize/head-simple.phtml

ต้องการการแก้ไขเช่นเดียวกับ

app/design/adminhtml/default/default/template/page/head.phtml

สำหรับผู้ที่มองหาวิธีแก้ไขนั้นคือ; github.com/nathandcornell/magento-patches/blob/…
Peter Jaap Blaakmeer

8

ปัญหา: การ ลงทะเบียนลูกค้าล้มเหลวเมื่อใช้การชำระเงินแบบทั่วไปของ Magento 5 ขั้นตอน

ปัญหานี้จะปรากฏเมื่อเราเปิดใช้งานการตรวจสอบสิทธิ์แบบฟอร์มคีย์เท่านั้น รุ่นที่ใช้: 1.7.0.2 แต่ดูเหมือนว่ามีคนโพสต์ปัญหาเดียวกันที่เกิดขึ้นกับรุ่น 1.9.3 เช่นกัน SUPEE-9767 Patch / CE 1.9.3.3 - ชำระเงินหน้าเดียว - ปัญหาการลงทะเบียนลูกค้า

เมื่อไปที่การชำระเงินเรามีตัวเลือก 2 รายการ: ตรวจสอบในฐานะแขกหรือลงทะเบียนเมื่อคลิก "ลงทะเบียน" และกรอกแบบฟอร์มพร้อมรหัสผ่านคุณดำเนินการตามขั้นตอนทั้งหมดและทำตามคำสั่งให้สมบูรณ์ รับการสั่งซื้อแล้ว แต่ลูกค้าไม่เคยได้รับการลงทะเบียนแบบวีโอไอพี ดูเหมือนว่าแขกสั่งซื้อแล้ว

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


1
นี่คือการโพสต์รายละเอียดเพิ่มเติมเกี่ยวกับปัญหานี้magento.stackexchange.com/questions/177035//
Raphael at Digital Pianism

8

อัพเดท 13/07/2017 [ปัญหาถูกแก้ไขแล้ว]

ทีมงานวีโอไอพีได้เปิดตัวSUPEE-9767 V2ในแพทช์เวอร์ชั่นนี้ปัญหาเกี่ยวกับ gif ที่โปร่งใสและ png's ได้รับการแก้ไข

คุณควรย้อนกลับการเปลี่ยนแปลงทั้งหมดไปยังไฟล์ที่กล่าวถึงในหัวข้อนี้ จากนั้นคืนแพทช์ V1 ที่ใช้แล้วและใช้เวอร์ชัน V2 ใหม่ในที่สุด


PRE - SUPEE-9767 V2

กรุณาอย่าใช้รหัสที่กล่าวถึงการร้องแทนการใช้ V2 ของแพทช์ปัญหาที่กล่าวถึงการร้องได้รับการแก้ไขแล้วในรุ่นนี้

หากใครบางคนประสบปัญหากับ png โปร่งใสที่เมื่ออัปโหลดจากแผงผู้ดูแลระบบพื้นหลังจะกลายเป็นสีดำ (เกี่ยวกับผลิตภัณฑ์) ที่เกี่ยวข้องกับการโทรกลับอัพโหลดภาพแนะนำใน:

app/code/core/Mage/Adminhtml/controllers/Catalog/Product/GalleryController.php

ในช่วงเวลาที่ฉันไม่แน่ใจว่าสิ่งที่ก่อให้เกิดพฤติกรรมนี้ แต่ฉันพยายามที่จะคิดออกฉันสามารถยืนยันได้ว่าเมื่อโทรกลับถูกลบออกพฤติกรรมแปลก ๆ จะหายไป

ป้อนคำอธิบายรูปภาพที่นี่

UPDATE

ตกลงฉันพบว่าฟังก์ชั่นที่ได้รับการปรับปรุงจาก SUPEE-9767 นี่เป็นการทำลายความโปร่งใสใน png ของสำเนาภาพต้นฉบับที่สร้างขึ้นโดยไม่มีความโปร่งใส

+++ app/code/core/Mage/Core/Model/File/Validator/Image.php
@@ -87,10 +87,33 @@ public function setAllowedImageTypes(array $imageFileExtensions = array())
      */
     public function validate($filePath)
     {
-        $fileInfo = getimagesize($filePath);
-        if (is_array($fileInfo) and isset($fileInfo[2])) {
-            if ($this->isImageType($fileInfo[2])) {
-                return null;
+        list($imageWidth, $imageHeight, $fileType) = getimagesize($filePath);
+        if ($fileType) {
+            if ($this->isImageType($fileType)) {
+                //replace tmp image with re-sampled copy to exclude images with malicious data
+                $image = imagecreatefromstring(file_get_contents($filePath));
+                if ($image !== false) {
+                    $img = imagecreatetruecolor($imageWidth, $imageHeight);
+                    imagecopyresampled($img, $image, 0, 0, 0, 0, $imageWidth, $imageHeight, $imageWidth, $imageHeight);
+                    switch ($fileType) {
+                        case IMAGETYPE_GIF:
+                            imagegif($img, $filePath);
+                            break;
+                        case IMAGETYPE_JPEG:
+                            imagejpeg($img, $filePath, 100);
+                            break;
+                        case IMAGETYPE_PNG:
+                            imagepng($img, $filePath);
+                            break;
+                        default:
+                            return;
+                    }
+                    imagedestroy($img);
+                    imagedestroy($image);
+                    return null;
+                } else {
+                    throw Mage::exception('Mage_Core', Mage::helper('core')->__('Invalid image.'));
+                }
             }
         }
         throw Mage::exception('Mage_Core', Mage::helper('core')->__('Invalid MIME type.'));

UPDATE

นี่คือฟังก์ชั่นที่อัพเดตเวอร์ชั่นเพื่อรักษาความโปร่งใสของ png

  imagealphablending($img, false);
  imagesavealpha($img, true);

ต้องเพิ่มสองบรรทัดนี้ในแพทช์ อัปเดตฟังก์ชั่นในapp/code/core/Mage/Core/Model/File/Validator/Image.php

/**
 * Validation callback for checking is file is image
 *
 * @param  string $filePath Path to temporary uploaded file
 * @return null
 * @throws Mage_Core_Exception
 */
public function validate($filePath)
{
    list($imageWidth, $imageHeight, $fileType) = getimagesize($filePath);
    if ($fileType) {
        if ($this->isImageType($fileType)) {
            //replace tmp image with re-sampled copy to exclude images with malicious data
            $image = imagecreatefromstring(file_get_contents($filePath));
            if ($image !== false) {
                $img = imagecreatetruecolor($imageWidth, $imageHeight);
                imagealphablending($img, false);
                imagesavealpha($img, true);  
                imagecopyresampled($img, $image, 0, 0, 0, 0, $imageWidth, $imageHeight, $imageWidth, $imageHeight);
                switch ($fileType) {
                    case IMAGETYPE_GIF:
                        imagegif($img, $filePath);
                        break;
                    case IMAGETYPE_JPEG:
                        imagejpeg($img, $filePath, 100);
                        break;
                    case IMAGETYPE_PNG:
                        imagepng($img, $filePath);
                        break;
                    default:
                        return;
                }
                imagedestroy($img);
                imagedestroy($image);
                return null;
            } else {
                throw Mage::exception('Mage_Core', Mage::helper('core')->__('Invalid image.'));
            }
        }
    }
    throw Mage::exception('Mage_Core', Mage::helper('core')->__('Invalid MIME type.'));
}

อัปเดต 23/06/17

ฟังก์ชันรุ่นที่ปรับปรุงนี้แก้ไข PNG และความโปร่งใสของ GIF

    /**
 * Validation callback for checking is file is image
 *
 * @param  string $filePath Path to temporary uploaded file
 * @return null
 * @throws Mage_Core_Exception
 */
public function validate($filePath)
{
    list($imageWidth, $imageHeight, $fileType) = getimagesize($filePath);
    if ($fileType) {
        if ($this->isImageType($fileType)) {
            //replace tmp image with re-sampled copy to exclude images with malicious data
            $image = imagecreatefromstring(file_get_contents($filePath));
            if ($image !== false) {
                $img = imagecreatetruecolor($imageWidth, $imageHeight);
                switch ($fileType) {
                    case IMAGETYPE_GIF:
                        imagecolortransparent($img, imagecolorallocatealpha($img, 0, 0, 0, 127));
                        imagealphablending($img, false);
                        imagesavealpha($img, true);
                        imagecopyresampled($img, $image, 0, 0, 0, 0, $imageWidth, $imageHeight, $imageWidth, $imageHeight);
                        imagegif($img, $filePath);
                        break;
                    case IMAGETYPE_JPEG:
                        imagecopyresampled($img, $image, 0, 0, 0, 0, $imageWidth, $imageHeight, $imageWidth, $imageHeight);
                        imagejpeg($img, $filePath, 100);
                        break;
                    case IMAGETYPE_PNG:
                        imagealphablending($img, false);
                        imagesavealpha($img, true);  
                        imagecopyresampled($img, $image, 0, 0, 0, 0, $imageWidth, $imageHeight, $imageWidth, $imageHeight);
                        imagepng($img, $filePath);
                        break;
                    default:
                        return;
                }
                imagedestroy($img);
                imagedestroy($image);
                return null;
            } else {
                throw Mage::exception('Mage_Core', Mage::helper('core')->__('Invalid image.'));
            }
        }
    }
    throw Mage::exception('Mage_Core', Mage::helper('core')->__('Invalid MIME type.'));
}

1
วิธีนี้ช่วยแก้ไขปัญหาของฉันในการติดตั้ง Magento 1.7 ขอบคุณ!
Tjitse

ไม่มีปัญหา Tjitse เพียงแค่จดบันทึกการเปลี่ยนแปลงนี้ในกรณีที่ทีม Magento ไม่แก้ไขแพทช์คุณจะต้องเปลี่ยนกลับเมื่อคุณทำการแก้ไขต่อไป ฉันได้ส่งปัญหาไปยังชุมชนที่ bugcrowd.com หวังว่าพวกเขาจะแนะนำการแก้ไขโดยเร็ว
Daniel Yovchev

สิ่งนี้จะแก้ไขสำหรับ pngs แต่ไม่ใช่สำหรับไฟล์ gif ที่โปร่งใส ไฟล์ gif ต้องการการจัดการที่แตกต่างกันเล็กน้อยโดยใช้ imagecolortransparent
สลับ

ขอบคุณสำหรับการชี้ทางเลือกนี้ดูฟังก์ชั่นการปรับปรุงที่แก้ไขความโปร่งใสของ gif ได้เช่นกัน
Daniel Yovchev

7

ปัญหา: ไม่อนุญาตให้แสดงการแจ้งเตือน symlink ให้ผู้ดูแลระบบ

การแจ้งเตือน symlink จะไม่ปรากฏในพื้นที่แจ้งเตือนของผู้ดูแลระบบเนื่องจากไม่รวมอยู่ใน <block type="core/text_list" name="notifications" as="notifications">

แพทช์สำหรับทั้ง CE และ EE ด้านล่าง:

--- app/design/adminhtml/default/default/layout/main.xml
+++ app/design/adminhtml/default/default/layout/main.xml
@@ -119,7 +119,8 @@ Default layout, loads most of the pages
<block type="adminhtml/cache_notifications" name="cache_notifications" template="system/cache/notifications.phtml"></block>
<block type="adminhtml/notification_survey" name="notification_survey" template="notification/survey.phtml"/>
<block type="adminhtml/notification_security" name="notification_security" as="notification_security" template="notification/security.phtml"></block>
-            </block>
+                <block type="adminhtml/checkout_formkey" name="checkout_formkey" as="checkout_formkey" template="notification/formkey.phtml"/></block>
+                <block type="adminhtml/notification_symlink" name="notification_symlink" template="notification/symlink.phtml"/>
<block type="adminhtml/widget_breadcrumbs" name="breadcrumbs" as="breadcrumbs"></block>
<!--<update handle="formkey"/> this won't work, see the try/catch and a jammed exception in Mage_Core_Model_Layout::createBlock() -->

ปัญหาอยู่</block>ที่จุดสิ้นสุดของcheckout_formkey(ซึ่งเป็นการยกเลิกด้วยตนเอง) และดังนั้นจึงปิดพาเรนnotificationsต์ นี่เป็นสาเหตุที่notification_symlinkจะไม่รวมอยู่ในcore/text_listและจะไม่ถูกเรนเดอร์


นี่ไม่ใช่ปัญหาจริงๆการแจ้งเตือนถูกลบเนื่องจาก symlink ถูกปิดใช้งานอย่างชัดเจนและส่วน symlink ถูกลบออก ไม่สามารถเปลี่ยนค่า symlink ด้วยตนเองในผู้ดูแลระบบใน v1933 ดังนั้นการแสดงการแจ้งเตือนของผู้ดูแลระบบจึงไม่มีประโยชน์ ปัญหานี้จะเกิดขึ้นสำหรับการติดตั้งใหม่ปี 1933 ซึ่งผู้ใช้ที่ต้องการ symlink เช่น modman ไม่สามารถเปิดใช้งานได้ด้วยตนเอง หนึ่งอาจอนุมานได้ว่าวีโอไอพีไม่ได้คาดหวังการติดตั้งใหม่ 1.x ...
ชุดนอน

ฉันไม่เห็นด้วยแพทช์นี้ไม่ได้ปิดใช้งานการกำหนดค่าอย่างชัดเจนหากมีการตั้งค่าไว้แล้ว - จะปิดใช้งานเฉพาะเมื่อไม่ได้ตั้งค่าไว้เท่านั้น ดังนั้นหากอินสแตนซ์มีการตั้งค่า dev / template / allow_symlink ตั้งค่าเป็นใช่ใน DB / local.xml ก่อนแพทช์นี้และพวกเขาใช้แพทช์พวกเขาควรได้รับการเตือนว่า symlink ได้รับอนุญาตเพราะพวกเขามีความเสี่ยง
mwylde

ฉันเห็นจุดของคุณและคุณถูกต้อง แต่สำหรับผู้ใช้ทั่วไปพวกเขาจะทำอะไร - เป็นไปไม่ได้ที่จะปิดการใช้งานด้วยตนเองจากผู้ดูแลระบบเนื่องจากตัวเลือกการกำหนดค่าถูกลบแล้ว มันเป็นบิตของการจับ 22 สถานการณ์ ...
PAJ

7

ทิปเล็กน้อยสำหรับ #patchday; หลังจากคัดลอก 1.9.3.3 บนการติดตั้งของคุณให้เรียกใช้git diff -w --stat | grep -v " 2 +" | grep -v " 0"เพื่อดูการเปลี่ยนแปลงที่ใหญ่ขึ้นในไฟล์


7

ปัญหา: เทมเพลตการจัดส่ง EE ไม่ได้รับการแก้ไข

ฉันได้ทำการติดตั้ง EE 1.13.1.0 แล้วและเทมเพลตการจัดส่งขององค์กร ( app/design/frontend/enterprise/default/template/checkout/onepage/shipping.phtml) ไม่ได้เพิ่มฟอร์มคีย์แต่มีการเรียกเก็บเงินและเทมเพลตการชำระเงิน

app/design/frontend/base/default/template/checkout/onepage/shipping.phtml ได้รับการแก้ไข


ฉันยังจำเป็น (สำหรับ EE 1.14.2) เพื่อเพิ่ม form_key ไป /app/design/frontend/enterprise/default/template... .../checkout/cart/coupon.phtml,.../giftcardaccount/cart/block.phtml .../giftcardaccount/cart/check.phtml
เกร็ก Nickoloff

4

มีปัญหากับ Magento EE ที่ติดตั้ง SUPEE-9767 (ไม่ต้องอัพเกรดเป็น 1.14.3.3) คีย์แบบฟอร์มบนหน้านั้นจะถูกแคช ดังนั้นเมื่อฉันล้างแคชของฉันแล้วไปที่หน้าผลิตภัณฑ์และตรวจสอบให้แน่ใจว่าหน้านั้นถูกแคชสมบูรณ์ (รีเฟรชสองสามครั้ง) ฉันควรจะสามารถเพิ่มผลิตภัณฑ์นั้นลงในรถเข็นของฉันได้

ตอนนี้เมื่อฉันเปิดเบราว์เซอร์อื่น (หรือโหมดไม่ระบุตัวตน) ให้เปิดหน้าเดียวกันและลองเพิ่มผลิตภัณฑ์ลงในรถเข็นอีกครั้ง สินค้าจะไม่ถูกเพิ่มในรถเข็นเนื่องจากรหัสรูปแบบ ตอนนี้เมื่อคุณล้างแคชอีกครั้งสามารถเพิ่มสินค้าลงในรถเข็นอีกครั้ง

ขอบคุณJasper Zeinstra


3

สำหรับนักพัฒนาที่ใช้ Magento Composer Intaller คุณสามารถเปลี่ยนกลยุทธ์การปรับใช้เป็นคัดลอกแทน Symlink นอกจากนี้คุณยังสามารถกำหนดค่าให้ผนวกไฟล์โมดูลไปยัง. gitignore ของคุณเพื่อที่เก็บของคุณจะยังคงสะอาดอยู่

https://github.com/Cotya/magento-composer-installer/blob/master/doc/Deploy.md#deploy-per-copy-instead-of-symlink

{ "extra":{ "magento-root-dir": "htdocs/", "magento-deploystrategy": "copy", "auto-append-gitignore": true } }


เราพบว่ามีการคัดลอก"magento-force": true,กลายเป็นสิ่งสำคัญ
Jeroen

3

ฉันมีปัญหากับ EE 1.14.2.2 เมื่อเปิดใช้งาน FPC และใช้โปรแกรมแก้ไขนี้

ผู้ใช้ไม่สามารถเพิ่มในรถเข็นเป็นระยะ

คำอธิบายและการแก้ไขที่นี่: ปัญหา SUPEE-9767: เพิ่มในรถเข็นปัญหา Enterprise Full Page Cache


2

ปัญหา: Patch กำลังทำงานกับ vanilla Magento 1.7.0.0 [แก้ไข]

ในระหว่างการทดสอบสคริปต์แพทช์ของเราเราค้นพบปัญหาใน patch สำหรับ Magento 1.7.0.0 ไม่ทราบว่าใครยังใช้อยู่ แต่จะมีปัญหาใน SUPEE-9767 หรือไม่ เราใช้การติดตั้งวานิลลาและเราติดตั้งแพตช์ก่อนหน้านี้ทั้งหมดก่อน

ไฟล์ Patch ที่ใช้: PATCH_SUPEE-9767_CE_1.7.0.2_v1-2017-05-25-09-31-32.sh ไฟล์ patch ใช้งานได้กับ Magento 1.7.0.1 และ 1.7.0.2

สรุปปัญหา:

ERROR: Patch can't be applied/reverted successfully.
...
can't find file to patch at input line 377
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git app/code/core/Mage/Core/Model/File/Validator/Image.php app/code/core/Mage/Core/Model/File/Validator/Image.php
|index 7f7b9d0..cbbcbb1 100644
|--- app/code/core/Mage/Core/Model/File/Validator/Image.php
|+++ app/code/core/Mage/Core/Model/File/Validator/Image.php
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
2 out of 2 hunks ignored
...
checking file app/code/core/Mage/Sales/Model/Quote/Item.php
Hunk #1 FAILED at 502.
1 out of 1 hunk FAILED
...

สำหรับเร็กคอร์ดสิ่งนี้ใน 1.7.0.0 เราได้ลองใช้ patch ใน:

$ grep SUPEE app/etc/applied.patches.list
2017-06-01 12:59:49 UTC | SUPEE-2677 | EE_1.13.0.2 | v2 | d20e6763cd0df70c4ac6e418c9775a1ff0f2618f | Tue Jan 14 17:49:25 2014 +0200 | v1.13.0.2..HEAD
2017-06-01 12:59:49 UTC | SUPEE-2629 | EE_1.12.0.0 | v1 | 5de775cf535e137b0b099d8066bd5b3a81f7ec4c | Wed Dec 11 16:50:40 2013 +0200 | v1.12.0.0..HEAD
-e 2017-06-01 12:59:49 UTC | SUPEE-1049 | EE-1.12.0.2 | v1 | 6d06f286f461562fa6d6573349f1491f7bf89859 | Wed Feb 13 17:46:13 2013 -0800 | v1.12.0.2..HEAD
2017-06-01 12:59:49 UTC | SUPEE-1868-1-12-0-2 | EE_1.12.0.2 | v1 | 2148b1b6be28a9bad0bec9a4aecc63ed318dd201 | Fri Jul 26 13:20:27 2013 -0700 | v1.12.0.2..HEAD
2017-06-01 12:59:49 UTC | SUPEE-4334-v1.11.1.0 | EE_1.11.1.0 | v1 | 40f5a2e4db9ca53dc6a8e62eb0c728fd63b1157e | Wed Sep 10 10:42:31 2014 -0700 | ef80f7bff749c941b4d1736cc2b502888e7540c9
2017-06-01 12:59:49 UTC | SUPEE-5345 | EE_1.12.0.2 | v1 | 2d36f61cf684ed26286b6d10307fcb99dd47ff02 | Thu Feb 5 19:39:01 2015 +0200 | v1.12.0.2..HEAD
2017-06-01 12:59:49 UTC | SUPEE-5994 | CE_1.6.0.0 | v1 | _ | n/a | SUPEE-5994_CE_1.6.0.0_v1.patch
2017-06-01 12:59:49 UTC | SUPEE-6237 | EE_1.14.2.0 | v1 | 8b216c42e2e5d2cb5d8e500fcb6690abede9df52 | Fri Jun 12 13:39:59 2015 +0300 | v1.14.2.0..HEAD
2017-06-01 12:59:49 UTC | SUPEE-6285 | CE_1.7.0.2 | v1 | 84749c91e14543e1f96af30e86efdf29f4562c98 | Tue Jun 23 09:48:07 2015 +0300 | c6e6cee8eb..84749c91e1
2017-06-01 12:59:49 UTC | SUPEE-6482 | CE_1.8.0.0 | v1 |  | Tue Jul 14 14:17:04 2015 +0300 |
2017-06-01 12:59:49 UTC | SUPEE-6788 | CE_1.7.0.1 | v1 | 04d237d56b116989e46839c41691585d927f99db | Fri Oct 23 13:52:50 2015 +0300 | f69136a
2017-06-01 12:59:49 UTC | SUPEE-7616 | CE_1.7.0.2-CE_1.4.2.0 | v1 | a16c51e3679c3f19de6c3207b7a42daa7f9227fc | Fri Dec 18 12:42:03 2015 +0200 | 3617437b6da11be812fcca85f4e6ecbd8b8dc94c..a16c51e3679c3f19de6c3207b7a42daa7f9227fc
2017-06-01 12:59:50 UTC | SUPEE-8788 | CE_1.7.0.0 | v2 | 6b5ef4fc5b09af74d0fd401440948d0a54dd203d | Fri Oct 14 19:27:22 2016 +0300 | 84fa3dd598466fa5c482965a3f8e5395af33bf9d
2017-06-01 12:59:50 UTC | SUPEE-8967 | EE_1.13.1.0 | v1 | 1fa53e9533f6f3a16f24d9b64dabef0ab7f965d7 | Thu Aug 18 16:32:48 2016 +0300 | 97d160644..1fa53e9533
2017-06-01 12:59:50 UTC | SUPEE-9652 | EE_1.14.3.1 | v1 | 4038f0785d828794083f53f10c01aaa6af403523 | Tue Jan 24 15:03:12 2017 +0200 | 9586981e6ca8b255014b242d50b68b88525b0754..4038f0785d828794083f53f10c01aaa6af403523

4
หากคุณไม่มีไฟล์ดังกล่าวแสดงว่าคุณไม่ได้ติดตั้งโปรแกรมปรับปรุงความปลอดภัย SUPEE-7405
Ryan Hoerr

@RyanHoerr คุณพูดถูก SUPEE-7405 ถูกข้ามไปเพราะไฟล์อย่างเป็นทางการใช้PATCH_SUPEE-7405_CE_1.7.0.2_v1-2016-01-20-04-58-44.shไม่ได้กับ 1.7.0.0 ฉันสร้างไฟล์เวอร์ชันคงที่แล้ว หากใครต้องการมันก็ส่งข้อความมาหาฉัน
Jeroen Vermeulen - MageHost

2

ฉันแค่ต้องย้อนแพทช์นี้เนื่องจากพฤติกรรมแปลก ๆ ด้วยเหตุผลใดก็ตามผู้ใช้บางคนไม่สามารถเพิ่มรายการบางอย่างลงในรถเข็นของพวกเขา

ฉันสมมติว่ามันมีบางอย่างเกี่ยวกับการเสนอราคาแบบเก่าชนกับการเสนอราคาปัจจุบันสำหรับลูกค้ารายนั้น ฉันตรวจสอบปัญหานี้ด้วยการเข้าสู่ระบบในฐานะผู้ใช้เพื่อให้แน่ใจว่าไม่ใช่เพียง 1D10T

มันเป็นปัญหาตั้งแต่ฉันใช้ชีวิตแพทช์ที่เมื่อวันศุกร์ที่ เราใช้ 1.14.2.4 เราได้รับการแก้ไขอย่างมากดังนั้นจึงอาจทำงานได้ดีสำหรับผู้ใช้รายอื่น เพียงคำเตือน!


ถูกต้องแล้วโปรแกรมปะแก้จะหยุดการเพิ่มลงในรถเข็นสำหรับรุ่น EE ของ Magento โดยทั่วไปปัญหาเกิดขึ้นเนื่องจากโมดูล PageCache มีตรรกะการสร้าง form_key รุ่นหนึ่งในขณะที่เซสชั่นมีของตัวเอง เมื่อ FPC มีรุ่นแคชของหน้าที่ร้องขอ แต่ต้องการสร้าง minicart ใหม่เซสชันจะถูกทริกเกอร์ซึ่งสร้าง form_key ใหม่ในเวลาเดียวกันการบันทึก FPC จะถูกเรียกซึ่งสร้าง form_key ของตัวเอง ที่ค่าเซสชั่นจุดนั้นของ form_key แตกต่างจากที่เก็บไว้ในคุกกี้ลูกค้า (ใช้ในโปรเซสเซอร์ FPC) ดังนั้นคุณจะได้รับคีย์ที่ไม่ถูกต้องในการเพิ่มไปยังตัวควบคุมรถเข็น
Stjepan

ฉันยังประสบปัญหานี้ ฉันจะแจ้งให้คุณทราบหากฉันพบการแก้ไข
cmtickle

ฉันแก้ไขปัญหานี้ได้คำอธิบายที่นี่: magento.stackexchange.com/questions/177942/…
cmtickle

มีใครรู้บ้างไหมว่าเรื่องนี้ได้รับการแก้ไขใน SUPEE-9767 v2
ศิษย์แห่งหนึ่ง

2

ปัญหา: วงการเปลี่ยนเส้นทางไม่สิ้นสุดใน 1.6.0.0

แก้ไขด่วน

ค้นหาบรรทัดด้านล่างในฟังก์ชันป้องกันเมธอด_checkBaseUrl ($ request)ในแอพไฟล์/ รหัส / core / Mage / Core / Controller / Varien / Front.php

 if (isset($uri['scheme']) && $uri['scheme'] != $request->getScheme()
        || isset($uri['host']) && $uri['host'] != $request->getHttpHost()
        || isset($uri['path']) && strpos($requestUri, $uri['path']) === false
 ) {  

เปลี่ยนบรรทัดเหล่านี้เป็น

 if (isset($uri['host']) && $uri['host'] != $request->getHttpHost()
            || isset($uri['path']) && strpos($requestUri, $uri['path']) === false
 ) { 

หลังจากนั้นให้บันทึกไฟล์ (ส่งถึง REPO ของคุณ) ล้างแคช (ลบทุกอย่างภายในโฟลเดอร์ var / cache) และโหลดหน้าร้านของคุณใหม่ คุณควรค้นหาไซต์ที่โหลดโดยไม่มีปัญหาการเปลี่ยนเส้นทาง 302 อีกต่อไปหลังจากใช้ SUPEE 9767 Patch

สาเหตุหลัก

ความแตกต่างของค่า SCHEME ระหว่างคำขอจริงและ URI หลังจากเปลี่ยนเส้นทาง เช่น: คำขอที่แท้จริงส่งกลับ HTTP แบบแผน แต่แบบแผนใน URI สามารถเป็น HTTPS

เหตุผลที่เป็นไปได้

  1. คุณอาจมีกฎการเปลี่ยนเส้นทางในไฟล์. htaccess เพื่อเปลี่ยนเส้นทางคำขอ HTTP ทั้งหมดไปยัง https ผู้ใช้ร้องขอhttp://yourdomain.comและคุณอาจเปลี่ยนรูปแบบและเปลี่ยนเส้นทางเขาไปที่https: // yourdomainแทนhttp://yourdomain.comที่เขาร้องขอจริง ๆ

  2. ทั้ง URL ที่ปลอดภัยและไม่ปลอดภัยพื้นฐานเริ่มต้นด้วย https


2

BUG ยืนยัน"การลงทะเบียนลูกค้าล้มเหลวเมื่อเช็คเอาต์"เกิดขึ้นเล็กน้อยในด้านของฉัน

หากลูกค้าเลือกลงทะเบียนในการชำระเงินรหัสผ่านจะไม่ถูกจัดเก็บอย่างถูกต้อง ลูกค้าสร้างขึ้นอย่างถูกต้องเพียงแค่ไม่ได้จัดเก็บรหัสผ่าน ฉันตรวจพบสิ่งนี้ด้วยความจริงที่ว่ารหัสผ่านไม่แสดงในอีเมลต้อนรับ ผู้คนไม่สามารถเข้าสู่ระบบเพราะสิ่งนี้ด้วย

แก้ไขข้อผิดพลาดที่เชื่อมโยงในSUPEE-9767 Patch / CE 1.9.3.3 - ชำระเงินหน้าเดียว - ปัญหาการลงทะเบียนลูกค้าได้ทำงานให้ฉันด้วยเช่นกัน


2

ใครสามารถบอกฉันว่า f ... นี่คือ ... สำหรับใน supee-9767?

ป้อนคำอธิบายรูปภาพที่นี่


1
เวอร์ชั่น jQuery 1.10.2 นั้นถือว่ามีความเสี่ยงและถูกตั้งค่าสถานะโดยสแกนเนอร์ PCI บางตัว ไม่ใช่เวอร์ชั่น 1.12
Ryan Hoerr

@Detzler StackExchange ไม่ใช่ฟอรัม หากคุณต้องการถามคำถามคุณควรโพสต์คำถามไม่ใช่คำตอบสำหรับคำถาม
toon81

1
Ryan Hoerr ถามถึงปัญหาใด ๆ ดังนั้นฉันจึงบอกเขาว่าอาจมีการเปลี่ยนแปลงครั้งใหญ่เมื่อคุณเห็นภาพหน้าจอ ฉันไม่สามารถอธิบายเหตุผลสำหรับการเปลี่ยนแปลงนี้ได้ ดังนั้นฉันถามย่อย แล้วคุณมีปัญหาอะไร
Detzler

2

แพทช์ไม่ทำงานแม้แต่ Vanilla Magento 1.7.0.2

martins@martinsmac.local:/var/www/magento1702-original$ ./PATCH_SUPEE-9767_CE_1.7.0.2_v1-2017-05-25-09-31-32.sh
Checking if patch can be applied/reverted successfully...
ERROR: Patch can't be applied/reverted successfully.

patching file app/code/core/Mage/Admin/Model/Session.php
Hunk #1 succeeded at 109 (offset -29 lines).
patching file app/code/core/Mage/Adminhtml/Block/Checkout/Formkey.php
patching file app/code/core/Mage/Adminhtml/Block/Notification/Symlink.php
patching file app/code/core/Mage/Adminhtml/Block/Widget/Grid/Column/Filter/Date.php
patching file app/code/core/Mage/Adminhtml/Model/Config/Data.php
patching file app/code/core/Mage/Adminhtml/controllers/Catalog/Product/GalleryController.php
patching file app/code/core/Mage/Checkout/controllers/MultishippingController.php
patching file app/code/core/Mage/Checkout/controllers/OnepageController.php
Hunk #1 succeeded at 293 (offset -34 lines).
Hunk #2 succeeded at 313 (offset -34 lines).
Hunk #3 succeeded at 363 (offset -34 lines).
Hunk #4 succeeded at 392 (offset -34 lines).
Hunk #5 succeeded at 431 (offset -34 lines).
patching file app/code/core/Mage/Checkout/etc/system.xml
patching file app/code/core/Mage/Cms/Model/Wysiwyg/Images/Storage.php
patching file app/code/core/Mage/Core/Controller/Front/Action.php
patching file app/code/core/Mage/Core/Controller/Request/Http.php
Hunk #1 succeeded at 141 (offset -7 lines).
can't find file to patch at input line 377
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git app/code/core/Mage/Core/Model/File/Validator/Image.php app/code/core/Mage/Core/Model/File/Validator/Image.php
|index 7f7b9d0..cbbcbb1 100644
|--- app/code/core/Mage/Core/Model/File/Validator/Image.php
|+++ app/code/core/Mage/Core/Model/File/Validator/Image.php
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
2 out of 2 hunks ignored
patching file app/code/core/Mage/Core/etc/config.xml
patching file app/code/core/Mage/Core/etc/system.xml
patching file app/code/core/Mage/Customer/Model/Session.php
patching file app/code/core/Mage/Dataflow/Model/Convert/Adapter/Zend/Cache.php
patching file app/code/core/Mage/Dataflow/Model/Convert/Container/Abstract.php
patching file app/code/core/Mage/Dataflow/Model/Convert/Parser/Csv.php
patching file app/code/core/Mage/Dataflow/Model/Convert/Parser/Xml/Excel.php
patching file app/code/core/Mage/ImportExport/Model/Import/Uploader.php
patching file app/code/core/Mage/Sales/Model/Quote/Item.php
Hunk #1 FAILED at 502.
1 out of 1 hunk FAILED -- saving rejects to file app/code/core/Mage/Sales/Model/Quote/Item.php.rej
patching file app/code/core/Mage/Widget/Model/Widget/Instance.php
patching file app/code/core/Mage/XmlConnect/Helper/Image.php
patching file app/design/adminhtml/default/default/layout/main.xml
patching file app/design/adminhtml/default/default/template/notification/formkey.phtml
patching file app/design/adminhtml/default/default/template/notification/symlink.phtml
patching file app/design/adminhtml/default/default/template/page/head.phtml
patching file app/design/frontend/base/default/template/checkout/cart/shipping.phtml
patching file app/design/frontend/base/default/template/checkout/multishipping/billing.phtml
patching file app/design/frontend/base/default/template/checkout/multishipping/shipping.phtml
patching file app/design/frontend/base/default/template/checkout/onepage/billing.phtml
patching file app/design/frontend/base/default/template/checkout/onepage/payment.phtml
patching file app/design/frontend/base/default/template/checkout/onepage/shipping.phtml
patching file app/design/frontend/base/default/template/checkout/onepage/shipping_method.phtml
patching file app/design/frontend/base/default/template/persistent/checkout/onepage/billing.phtml
patching file app/etc/config.xml
patching file app/locale/en_US/Mage_Adminhtml.csv
patching file app/locale/en_US/Mage_Core.csv
patching file app/locale/en_US/Mage_Dataflow.csv
patching file downloader/Maged/Connect.php
patching file downloader/Maged/Controller.php
Hunk #1 succeeded at 400 (offset -5 lines).
Hunk #2 succeeded at 923 (offset -5 lines).
patching file downloader/Maged/Model/Session.php
Hunk #2 succeeded at 235 with fuzz 2 (offset -13 lines).
patching file js/varien/payment.js
patching file skin/frontend/base/default/js/opcheckout.js

แม้หลังจากใช้โปรแกรมแก้ไขที่เก่ากว่าด้วยตนเอง

$ grep '|' app/etc/applied.patches.list
2017-06-19 04:01:42 UTC | SUPEE-2677 | EE_1.13.0.2 | v2 | d20e6763cd0df70c4ac6e418c9775a1ff0f2618f | Tue Jan 14 17:49:25 2014 +0200 | v1.13.0.2..HEAD
2017-06-19 04:03:26 UTC | SUPEE-2629 | EE_1.12.0.0 | v1 | 5de775cf535e137b0b099d8066bd5b3a81f7ec4c | Wed Dec 11 16:50:40 2013 +0200 | v1.12.0.0..HEAD
2017-06-19 04:04:12 UTC | SUPEE-1049 | EE_1.12.0.2 | v1 | 5cd884653325315804056d4c591572385b3c1d03 | Thu Mar 20 16:33:19 2014 +0200 | v1.12.0.2..HEAD
2017-06-19 04:05:01 UTC | SUPEE-1868-1-12-0-2 | EE_1.12.0.2 | v1 | 2148b1b6be28a9bad0bec9a4aecc63ed318dd201 | Fri Jul 26 13:20:27 2013 -0700 | v1.12.0.2..HEAD
2017-06-19 04:06:38 UTC | SUPEE-4334-v1.11.1.0 | EE_1.11.1.0 | v1 | 40f5a2e4db9ca53dc6a8e62eb0c728fd63b1157e | Wed Sep 10 10:42:31 2014 -0700 | ef80f7bff749c941b4d1736cc2b502888e7540c9
2017-06-19 04:07:10 UTC | SUPEE-1533 | EE_1.12 | v1 | _ | n/a | SUPEE-1533_EE_1.12_v1.patch
2017-06-19 04:08:41 UTC | SUPEE-5345 | EE_1.12.0.2 | v1 | 2d36f61cf684ed26286b6d10307fcb99dd47ff02 | Thu Feb 5 19:39:01 2015 +0200 | v1.12.0.2..HEAD
2017-06-19 04:09:29 UTC | SUPEE-5994 | CE_1.6.0.0 | v1 | _ | n/a | SUPEE-5994_CE_1.6.0.0_v1.patch
2017-06-19 04:10:00 UTC | SUPEE-6237 | EE_1.14.2.0 | v1 | 8b216c42e2e5d2cb5d8e500fcb6690abede9df52 | Fri Jun 12 13:39:59 2015 +0300 | v1.14.2.0..HEAD
2017-06-19 04:11:22 UTC | SUPEE-6285 | CE_1.7.0.2 | v1 | 84749c91e14543e1f96af30e86efdf29f4562c98 | Tue Jun 23 09:48:07 2015 +0300 | c6e6cee8eb..84749c91e1
2017-06-19 04:11:50 UTC | SUPEE-6482 | CE_1.8.0.0 | v1 |  | Tue Jul 14 14:17:04 2015 +0300 |
2017-06-19 04:12:12 UTC | SUPEE-7616 | CE_1.7.0.2-CE_1.4.2.0 | v1 | a16c51e3679c3f19de6c3207b7a42daa7f9227fc | Fri Dec 18 12:42:03 2015 +0200 | 3617437b6da11be812fcca85f4e6ecbd8b8dc94c..a16c51e3679c3f19de6c3207b7a42daa7f9227fc
2017-06-19 04:14:30 UTC | SUPEE-8167 | EE_1.12.0.2 | v1 | b1be28f9cd8c2ecba2aa403e59ad9e3d2855eb95 | Thu May 4 13:52:13 2017 +0300 | 8d12ea6fe564b6dc9ed1affb6de990f81aca3796..HEAD
2017-06-19 04:16:21 UTC | SUPEE-8967 | EE_1.13.1.0 | v1 | 1fa53e9533f6f3a16f24d9b64dabef0ab7f965d7 | Thu Aug 18 16:32:48 2016 +0300 | 97d160644..1fa53e9533
2017-06-19 04:16:44 UTC | SUPEE-9652 | EE_1.14.3.1 | v1 | 4038f0785d828794083f53f10c01aaa6af403523 | Tue Jan 24 15:03:12 2017 +0200 | 9586981e6ca8b255014b242d50b68b88525b0754..4038f0785d828794083f53f10c01aaa6af403523
2017-06-19 04:19:35 UTC | SUPEE-6788 | CE_1.7.0.2 | v1 | 0398c4b951d9a0f64495e7b8b3b8ca480952dd70 | Fri Oct 23 13:50:23 2015 +0300 | cfc252b

วิธีแก้ไข / ปัญหาที่ฉันพบคือการเปลี่ยนแปลงบางอย่างใน patch สำหรับ 1.7.0.2 สำหรับไฟล์ที่ไม่มีอยู่ก่อนหน้า 1.9.2.3 ดังนั้นฉันจึงคัดลอกไฟล์ต่อไปนี้จากการติดตั้ง 1.9.2.3 ใหม่ล่าสุดก่อนที่จะรันสคริปต์แก้ไข:

  • app / รหัส / core / Mage / core / รุ่น / ไฟล์ / ตรวจสอบ / Image.php
  • app / รหัส / core / Mage / การขาย / รุ่น / ใบเสนอราคา / Item.php

โปรแกรมปรับปรุงจะถือว่าโปรแกรมรักษาความปลอดภัยอื่น ๆ ทั้งหมดได้ถูกนำไปใช้แล้ว ไฟล์ที่คุณกำลังพูดถึงถูกเพิ่ม / เปลี่ยนแปลงโดยแพทช์ก่อนหน้า คุณพลาดอย่างน้อย SUPEE-7405
Ryan Hoerr

สวัสดี Ryan อันที่จริงฉันพยายามสมัคร 7405 ด้วย แต่ไม่ได้ผล ... $ ./PATCH_SUPEE-7405_CE_1.7.0.2_v1.1-2016-02-23-07-22-52 \ (1) .sh กำลังตรวจสอบว่าสามารถใช้ / แปลงกลับเป็นผลสำเร็จหรือไม่ ... ข้อผิดพลาด: ไม่สามารถใช้ / แก้ไขโปรแกรมแก้ไขได้สำเร็จ (.. ) Adminhtml / Helper / Sales.php ก้อนใหญ่ # 1 ล้มเหลวที่ 121. 1 ใน 1 ก้อนใหญ่ FAILED - การบันทึกปฏิเสธไปยังไฟล์ (.. ) Adminhtml / Helper / Sales.php.rej ไฟล์การแก้ไข (.. ) / Core / Model / Config.php Hunk # 1 FAILED ที่ 1642 1 จาก 1 hunk FAILED - การบันทึกปฏิเสธไปยังไฟล์ (.. ) ไฟล์การปะแก้ Config.php.rej (.. ) / อ้างอิง / Item.php Hunk # 1 ล้มเหลวเมื่อ 509 ....
Ricardo Martins

@RicardoMartins ฉันจะแก้ไขข้อผิดพลาดนี้ได้อย่างไร: การแก้ไขไฟล์ app / locale / en_US / Mage_Adminhtml.csv Hunk # 2 ล้มเหลวที่ 36. 1 จาก 2 hunks ล้มเหลว - ประหยัดปฏิเสธไปยังไฟล์ app / locale / en_US / Mage_Adminhtml.csv.rej ?
zus

0

ยื่นเพิ่มเติมจากhttps://magento.stackexchange.com/a/176930/46249

โปรดทราบว่า Symlinks จะถูกปิดใช้งานโดยค่าเริ่มต้นในการติดตั้ง Magento ใหม่ผู้ดูแลระบบ YES / NO ค่ากำหนดค่าเริ่มต้นเป็น 'ไม่' ตอนนี้การอัปเดตจะปิดการใช้งาน symlink ใน config.xml อย่างชัดเจนและเพื่อเป็นการป้องกันเพิ่มเติมยังลบส่วนเทมเพลตออกจาก admin-> ผู้พัฒนาซึ่งมีตัวเลือกการกำหนดค่า

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


ข้อความหนาไม่ถูกต้อง หากอัปเดตเป็น1.9.3.4 (SUPEE-9767 V2)หรือการตั้งค่าปัจจุบันที่ใหม่กว่าจะถูกลบ:

# app/code/core/Mage/Core/sql/core_setup/upgrade-1.6.0.6-1.6.0.7.php
$connection->delete(
    $this->getTable('core_config_data'),
    $connection->prepareSqlCondition('path', array(
        'like' => 'dev/template/allow_symlink'
    ))
);

ผู้ดูแลระบบที่มีความรับผิดชอบสามารถเปิดใช้งานส่วนผู้ดูแลระบบ symlink อีกครั้งโดยค้นหาการเปลี่ยนแปลง diff ในส่วนเทมเพลตในแอพ / code / core / Mage / Core / etc / system.xml และเพิ่มส่วนใน system.xml ของคุณที่บรรทัด 600 symlink การตรวจสอบซ้ำยังคงเปิดใช้งานด้วย

เพียงแค่ทำให้ตัวเลือกการกำหนดค่าปรากฏอีกครั้งก็ไม่สามารถแก้ปัญหาได้ ตัวเลือกปรากฏขึ้น แต่คุณไม่สามารถเปลี่ยนการกำหนดค่าได้เนื่องจากโมเดลแบ็คเอนด์ที่เพิ่งเปิดตัวใหม่จะป้องกันการบันทึกค่า ดู:

# app/code/core/Mage/Core/etc/system.xml
<backend_model>adminhtml/system_config_backend_symlink</backend_model>

และ

# Mage_Adminhtml_Model_System_Config_Backend_Symlink
public function save()
{
    return $this;
}

ดังนั้นคุณต้องลบหรือแทนที่รุ่นแบ็กเอนด์นี้ดูวิธีเปิดใช้งาน symlink หลังจากติดตั้ง SUPEE-9767 V2

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