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


108

แพทช์รักษาความปลอดภัย Magento 1 ล่าสุด SUPEE-8788 มีการอัปเดต APPSEC 17 ชุดดังนั้นจึงเป็นสิ่งสำคัญอย่างยิ่งที่จะต้องนำไปใช้โดยเร็วที่สุด ในทางตรงกันข้ามมีความเป็นไปได้ที่จะเกิดความเข้ากันได้แบบย้อนหลังได้หลายครั้งและทำให้ประวัติศาสตร์ของการปะติดตลอดปีที่ผ่านมาฉันจะไม่ใช้มันอย่างประมาท

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

กระนั้น: คุณประสบปัญหาความเข้ากันได้หรือข้อผิดพลาดหลังจากใช้งาน patch หรือไม่?


6
"ไม่มีเทมเพลตส่วนหน้า" - ไม่ถูกต้องสำหรับ Magento เวอร์ชันเก่า ตัวอย่างเช่นตัวแก้ไข 1.7.0.2 จะเปลี่ยนไฟล์เท็มเพลต / เบส / เทมเพลตเริ่มต้น 9 ไฟล์
Kristof ที่ Fooman

magento.stackexchange.com/questions/140571/…ติดกับอันนี้เหรอ? อาจรวมข้อมูลทั้งหมดที่นี่ ...
7ochem

2
สำหรับใครก็ตามที่มีปัญหากับการอัพเดทไฟล์. swf ของแพตช์ฉันก็ลบบรรทัด 5951-9818 ออกจากแพทช์และลบไฟล์. swf ด้วยตนเอง/skin/adminhtml/default/default/media- เนื่องจากนั่นเป็นแพทช์ทั้งหมดที่ทำอยู่
Liam McArthur

ไม่แน่ใจว่าทำไม แต่หลังจากติดตั้ง 8788 ใน 1.8.0.0, patch 7405 รายงานว่าไม่ได้ติดตั้ง ในขณะที่ติดตั้ง v1 และ v1.1 ไว้ก่อนหน้านี้
MagenX

2
@srinivas คุณลบโฟลเดอร์มีเดียออกจากเส้นทางนี้ skin / adminhtml / default / default หรือไม่
Priya Ponnusamy

คำตอบ:


107

บันทึกย่อที่สำคัญ

โปรดทราบว่า1.9.3 นั้นแตกต่างจาก 1.9.2.4 + SUPEE-8788 นี่คือความแตกต่างระหว่างสอง: https://gist.github.com/digitalpianism/14a15cd52baede0e5d600e8c653f33e9

อัพเดท 14 ตุลาคม: แพทช์ v2 เปิดตัวแล้ว (ดูด้านล่าง) ตั้งแต่วันที่ 13 ตุลาคมแพทช์สำหรับ 1.5.x ถึง 1.8.x ถูกนำออกจากเว็บไซต์ Magento เนื่องจากความไม่ลงรอยกันกับแพตช์ก่อนหน้า (ดูด้านล่าง):

https://community.magento.com/t5/Security-Patches/SUPEE-8788-AND-SUPEE-1533-Incompatible-Hunk-error/td-p/50434/highlight/false/page/2

V3 ของแพตช์

เวอร์ชันใหม่นี้ใช้สำหรับ Magento EE 1.13.0.x เท่านั้น

ใช้ V3:

  • คืนค่า SUPEE 1533 (หากติดตั้ง)
  • ติดตั้ง SUPEE 3941 (หากไม่ได้ติดตั้ง)
  • ติดตั้ง SUPEE 8788 v3

V2 ของแพทช์

ใช้ V2:

  • คืนค่า SUPEE 8788 v1
  • คืนค่า SUPEE 1533 (หากติดตั้ง)
  • ติดตั้ง SUPEE 3941 (หากไม่ได้ติดตั้ง)
  • ติดตั้ง SUPEE 8788 v2

DemacMedia พัฒนาสคริปต์ทุบตีที่มีประโยชน์เพื่อทำให้กระบวนการข้างต้นเป็นไปโดยอัตโนมัติคุณสามารถค้นหาได้ที่นี่: https://github.com/DemacMedia/magento-SUPEE8788-patcher

รายละเอียดของแพทช์

หลังจากขุดลงในแพทช์ที่นี่เป็นส่วนที่น่าสนใจ (การปะจาก 1.9.2.4):

  • Mage_Adminhtml_Block_Media_Uploaderได้ถูกแทนที่ด้วยMage_Uploader_Block_Multipleเพื่อให้มีเต็มรูปแบบMage_Uploaderโมดูลซึ่งลดลงสนับสนุนแฟลช บล็อกเก่าเลิกใช้งานแล้วและขยายบล็อกใหม่
  • ยังคงเกี่ยวกับการอัปโหลดได้โมดูลได้รับ refactored เพื่อจัดการกับผู้อัปโหลดไม่ใช่แฟลชใหม่ มันใช้เป็นบล็อกอัพโหลดแทนการใช้แม่แบบMage_DownloadableMage_Uploader_Block_Single
  • ต่อไปนี้การเปลี่ยนแปลงนี้ทีเขา SWF ไฟล์skin/adminhtml/default/default/media/flex.swf, skin/adminhtml/default/default/media/uploader.swfและskin/adminhtml/default/default/media/uploaderSingle.swfได้ถูกลบไปแล้ว
  • ตัวควบคุมการลบที่อยู่ได้รับการป้องกันด้วยรหัสแบบฟอร์มโดยตรงผ่านgetDeleteUrlจากMage_Customer_Block_Address_Book
  • ตัวควบคุมการลบรายการสิ่งที่ปรารถนาได้รับการปกป้องด้วยแบบฟอร์มคีย์ผ่านgetRemoveUrlจากMage_Wishlist_Helper_Data
  • วิธีการชำระเงิน Paypal Express ตอนนี้ทำให้มั่นใจได้ว่าอีเมลของลูกค้าที่ใช้อยู่ใน Magento เมื่อตรวจสอบและลงทะเบียนผู้ใช้ใหม่ (เข้าใจ: ผู้ใช้ใหม่ถูกสร้างขึ้นก่อนประมวลผลการเสนอราคาใหม่)
  • ตอนนี้วิธีการชำระเงินที่ใช้ไคลเอ็นต์ cURL / HTTP ได้CURLOPT_SSL_VERIFYHOSTตั้งค่าเป็น 2 (เดิมคือ 0 ก่อน) และCURLOPT_SSL_VERIFYPEERตอนนี้จะเพิ่มการตั้งค่าสถานะลงในการเรียก cURL การตรวจสอบสถานะเพียร์เพียร์สามารถเปิด / ปิดการใช้งานผ่านการกำหนดค่าวิธีการชำระเงินผ่านทางแบบเลื่อนลงเปิดใช้งานการตรวจสอบ SSL
  • Mage_Http_Client_Curlตอนนี้ได้CURLOPT_SSL_VERIFYPEERตั้งค่าเป็นจริง (เป็นเท็จมาก่อน)ระวังถ้าคุณมีโมดูลที่กำหนดเองใด ๆ ที่ใช้มัน
  • ขนาดสูงสุดสำหรับรูปภาพผลิตภัณฑ์ตอนนี้สามารถกำหนดค่าได้ในการกำหนดค่า หมายเหตุ: มันอาจส่งผลให้เกิดข้อผิดพลาดตลกถ้าคุณอัปโหลดภาพใหญ่เกินไป: รูปแบบไฟล์ที่ไม่ได้รับอนุญาตใน Magento 1.9.2.2 หลังจากอัปโหลดแพทช์

ปัญหาที่ทราบของ SUPEE-8788 v2

ปัญหาที่ทราบของ SUPEE-8788 v1

ปัญหาที่ทราบ 1.9.3.0

แก้ไข: เนื่องจากรายการเริ่มมีความยาวและค่อนข้างไม่อยู่ในหัวข้อในคำตอบนี้ (ไม่ใช่ SUPEE-8788 ที่เกี่ยวข้อง) คุณสามารถอ้างอิงโพสต์นี้สำหรับรายการปัญหาที่ทราบ 1.9.3.0: https: //magento.stackexchange ดอทคอม / a / 140826/2380


1
ขอบคุณสำหรับรายการที่กว้างขวาง! คำถามหนึ่ง: คุณแน่ใจหรือไม่ว่าปัญหาการค้นหาข้อความเต็มใช้กับแพทช์ SUPEE-8788 ฉันไม่พบการเปลี่ยนแปลงที่เกี่ยวข้องกับฟังก์ชันนี้
Aad Mathijssen

1
@MageDev โปรดดูความคิดเห็นที่สามในคำถาม;)
Raphael ที่ Digital Pianism

1
หากผู้อัปโหลดสินค้าไม่ทำงานหลังจากที่ประสบความสำเร็จในการใช้แพทช์และคุณใช้ปลั๊กอิน CreareSEO นิยมแล้วแก้ไขนี้จะต้องถูกนำมาใช้ยังgithub.com/adampmoss/CreareSEO/pull/78
joesk

1
ฉันสังเกตเห็นว่าคุณพูดถึง "วิธีการชำระเงิน Paypal Express ตอนนี้ทำให้แน่ใจว่าอีเมลลูกค้าที่ใช้มีอยู่ใน Magento" หมายความว่าแขกไม่สามารถเช็คอินด้วย PayPal แบบด่วนได้หรือไม่ คุณต้องลงทะเบียนผู้ใช้? ฉันพลาดอะไรไปรึเปล่า.
ไอคอน

1
ส่วนขยายของบุคคลที่สามบางรายที่ใช้โปรแกรมอัปโหลดเก่าจะใช้งานไม่ได้หลังจากใช้โปรแกรมปะแก้ เช่น "Magic 360" กำลังเพิ่มแท็บลงในแท็บรายละเอียดผลิตภัณฑ์ของแบ็กเอนด์ หลังจากการปะแก้คุณจะไม่สามารถดู / แก้ไขรายละเอียดผลิตภัณฑ์ของคุณได้ ฉันสังเกตเห็นปัญหานี้กับผู้พัฒนาส่วนขยายบน Magento connect ( magentocommerce.com/magento-connect/ ...... )
DarkCowboy

29

เมื่อใช้ชุดข้อมูลแก้ไขข้อผิดพลาดนี้สามารถเกิดขึ้นได้:

checking file skin/adminhtml/default/default/media/flex.swf
checking file skin/adminhtml/default/default/media/uploader.swf
checking file skin/adminhtml/default/default/media/uploaderSingle.swf
Reversed (or previously applied) patch detected!  Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored
checking file skin/adminhtml/default/default/xmlconnect/boxes.css

แพทช์ 8788 มีเนื้อหาไบนารี เนื่องจาก Magento ไม่มีลิงก์ดาวน์โหลดโดยตรง (ฉันเกลียดนโยบายนี้มาตลอด) คุณต้องดาวน์โหลดแพตช์ไปยังคอมพิวเตอร์ของคุณและอัปโหลดด้วยแอปพลิเคชั่นถ่ายโอนไฟล์ (เช่น WinSCP บน Windows) ไปยังเซิร์ฟเวอร์ของคุณ ตัวอย่างเช่น WinSCP จะอัปโหลดในโหมดข้อความ (WinSCP จัดการไฟล์ * .sh เป็นข้อความโดยค่าเริ่มต้น)

ดังนั้นวิธีแก้ปัญหาสำหรับสิ่งนี้คือ zip / tar ไฟล์ patch และ unzip / untar อีกครั้งบนเซิร์ฟเวอร์ และ voila


ขออภัยฉันไม่มีวิธีตอบคำถามนี้

  1. ดาวน์โหลดเวอร์ชั่นวีโอไอพีที่ถูกต้อง (เช่น: CE 1.9.1.0)
  2. แทนที่ไฟล์ต่อไปนี้ด้วยตำแหน่งที่ดาวน์โหลด

skin / adminhtml / default / default / media / flex.swf skin / adminhtml / default / default / media / uploader.swf skin / adminhtml / default / default / default / media / uploaderSingle.swf

  1. เรียกใช้โปรแกรมปะแก้

ทำงานให้ฉัน



10
คุณอ่านคำถาม OPs แล้วหรือยัง? fschmengler ถามว่า: "อย่างไรก็ตาม: คุณประสบปัญหาความเข้ากันได้หรือข้อผิดพลาดใด ๆ หลังจากใช้แพตช์หรือไม่" ฉันพบปัญหานี้ในขณะที่ใช้งานโปรแกรมปะแก้ ฉันเดาความรู้สึกของกระทู้นี้เพื่อบันทึกข้อผิดพลาดที่เป็นไปได้ของ SUPEE-8788 ซึ่งรวมถึง - IMHO - ปัญหาเกี่ยวกับตัวแก้ไขเองเช่นกัน
infabo

ทำงานได้ดีขอบคุณ! เป็นการดีที่สุดที่จะทำเช่นนี้กับ Patch Magento ในอนาคตทั้งหมดด้วยหรือไม่
KiwisTasteGood

หรือคุณเพียงแค่ dos2unix PATCH_SUPEE-8788_CE_1.9.2.4_v1-2016-10-11-07-03-46.sh
fbtb

โดยทั่วไปแล้วมันไม่จำเป็นมาก่อนและฉันคิดว่ามันไม่จำเป็นในอนาคต ฉันเดาว่า SWF ผู้อัปโหลดเป็นไบนารีเดียวที่มาพร้อมกับ Magento 1.x - ตอนนี้พวกเขาหายไปแล้ว ดังนั้นฉันไม่คาดหวังปัญหาใด ๆ เช่นนี้อีกในอนาคต
infabo

3
เมื่อใช้ FileZilla เพื่ออัปโหลด.shไฟล์ปะแก้ไปที่รูท Magento ของคุณให้ตั้งค่าประเภทการถ่ายโอนเป็นbinaryก่อนที่จะอัปโหลดไฟล์แพตช์ การอ้างอิง
ForMat

25

หากคุณเคยใช้ SUPEE-1533 มาก่อนโปรแกรมแก้ไขจะไม่ทำงาน app/code/core/Mage/Adminhtml/controllers/DashboardController.php.

ฉันแก้ไขมันโดย ...

  1. ยกเลิกการเปลี่ยนแปลงที่นำไปใช้กับไฟล์นั้นด้วยตนเองโดย SUPEE-1533
  2. สมัคร SUPEE-8788
  3. แนะนำการเปลี่ยนแปลงที่แนะนำกับไฟล์นั้นด้วยตนเองอีกครั้งโดย SUPEE-1533

การลบการเปลี่ยนแปลงจาก SUPEE-8788 นั้นมีอันตรายเพราะไฟล์แพตช์มีข้อมูลไบนารี่และการบันทึกในโปรแกรมแก้ไขอาจทำให้เกิดปัญหา (gotcha อื่น)


ตามที่ฉันเข้าใจว่าคุณคืนค่าแพทช์ 1533 ดั้งเดิมติดตั้ง SUPEE 8788 แล้วติดตั้งอีกครั้ง 1533 ฉันเข้าใจถูกต้องหรือไม่
ไอคอน

ฉันยังมีปัญหากับ FAILED HUNK ที่ 28 app / design / frontend / base / default / template / review / form.phtml
ไอคอน

9
ฉันสงสัยว่าทำไมเมื่อเราใช้เวลาในการปรับใช้ patch อย่างเป็นทางการเพิ่มขึ้นอย่างถูกต้องเราจะถูกลงโทษโดยการแก้ไขด้วยตนเองเมื่อแพทช์ไม่ทำงานเมื่อแพทช์ที่จัดหามาก่อนหน้านี้ถูกนำไปใช้ วิธีการที่แปลกมาก
Jon Holland

1
ส่วนใหญ่ที่มีรุ่นต่ำกว่า 1.9 ที่ติดตั้ง SUPEE 1533 ไม่สามารถติดตั้งโปรแกรมแก้ไขอย่างถูกต้อง SUPEE 8788 เข้ากันไม่ได้กับ 1533
ไอคอน

2
@ JonHolland เพราะก็เป็น Magento
Agop

25

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

สาเหตุของการแก้ไขที่ล้มเหลว

หากคุณเห็น "ข้อผิดพลาด: ไม่สามารถใช้ / แก้ไขซ้ำได้" ให้มองหา "Hunk # 1 FAILED" ในข้อความบันทึกเพื่อตรวจสอบว่าไฟล์ใดที่แพตช์ล้มเหลว

  • เห็นได้ชัดว่า v2 ของ patch สำหรับ Magento 1.7 คาดว่าจะนำเสนอ SUPEE-3941 แม้ว่าจะมีอยู่ใน Magento 1.8 และ 1.9เท่านั้น หากคุณใช้ Magento 1.7 และดูข้อผิดพลาดเกี่ยวกับไฟล์ในdownloaderดาวน์โหลด SUPEE-3941 สำหรับ 1.8 และใช้กับ 1.7 มันควรจะทำงานได้ ดูหัวข้อความคิดเห็นที่นี่: ปัญหาความปลอดภัย SUPEE 8788
  • ในเวอร์ชันวีโอไอพีที่เคยใช้ SUPEE-1533 มาก่อนแพตช์จะล้มเหลวapp/code/core/Mage/Adminhtml/controllers/DashboardController.phpเนื่องจากไฟล์ได้รับผลกระทบจากทั้งแพตช์และ SUPEE-8788 (ไม่ถูกต้อง!) จะถือว่าเวอร์ชั่นที่ไม่มีการเปรียบเทียบนั้นมีอยู่ สิ่งนี้ยังคงเป็นจริงกับแพตช์เวอร์ชัน 2! เวอร์ชัน 2 มีการเปลี่ยนแปลงจาก SUPEE-1533 ดังนั้นหากคุณติดตั้งมาก่อนคุณยังคงต้องเปลี่ยนกลับ แต่คุณไม่จำเป็นต้องใช้มันอีกครั้งในภายหลัง

  • หากคุณลบหรือเปลี่ยนชื่อไดเรกทอรี "ตัวดาวน์โหลด" ตัวแก้ไขจะล้มเหลวเนื่องจากตัวแก้ไขไฟล์ภายในตัวดาวน์โหลด วิธีแก้ปัญหาที่ง่ายที่สุดคือการคืนค่าไดเรกทอรีดาวน์โหลดดั้งเดิมใช้ชุดข้อมูลแก้ไขแล้วลบไดเรกทอรีอีกครั้ง หรือคุณสามารถลบคำแนะนำสำหรับdownloader/lib/Mage/HTTP/Client/Curl.phpออกจากโปรแกรมแก้ไข

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

  • อีกปัญหาที่พบบ่อยคือแพทช์ล้มเหลวในการลบ.swfไฟล์เนื่องจากเนื้อหาไบนารีของพวกเขา ข้อผิดพลาดจะมีลักษณะดังนี้:

    checking file skin/adminhtml/default/default/media/uploaderSingle.swf
    Reversed (or previously applied) patch detected!  Assume -R? [n]
    Apply anyway? [n]
    Skipping patch.
    1 out of 1 hunk ignored
    

    หรือเช่นนี้

    Patching file skin/adminhtml/default/default/media/uploader.swf using Plan A...
    No such line 2 in input file, ignoring
    Empty context always matches.
    Hunk #1 failed at 0.
    1 out of 1 hunks failed while patching skin/adminhtml/default/default/media/uploader.swf
    Hmm...  The next patch looks like a unified diff to me...
    The text leading up to this was:
    --------------------------
    

    หรือเช่นนี้

    Checking if patch can be applied/reverted successfully...
    /bin/patch: **** malformed patch at line 5790: ?rM]M??????&X㔮??v??Q;r?N?qJ??Y???I0?Y??4??'?????9?.??X?Ǒ?{??ax!G???I???q?u|????թ??????|
                                                   h??o?V@??|? ?g?H aꪭ??Ю???,I"?ğ????.??    yI?I\????)?X?
                         ?p???*?e?q?K8<DqD?H;|?
    ERROR: Patch can't be applied/reverted successfully.
    

    คำตอบนี้จะได้รับจาก @infabo การดาวน์โหลดโปรแกรมแก้ไขโดยตรงไปยังระบบที่ฉันต้องการนำไปใช้โดยใช้ curl ตามที่อธิบายไว้ในhttps://gist.github.com/piotrekkaminski/9bc45ec84028611d621eทำงานได้สำหรับฉันเสมอยกเว้นเมื่อฉันลองใช้ Cygwin แล้ว

วิธีขั้นสูงในการจัดการกับแพตช์ที่ล้มเหลว: @PeterOCallaghan แนะนำให้ใส่เครื่องหมายความคิดเห็นในบรรทัด dry-run และจัดการไฟล์ * .rej ด้วยตนเอง วิธีนี้สามารถนำแพทช์ไปใช้ได้บางส่วนและหากไม่สามารถลบไฟล์ swf ได้คุณสามารถทำได้ด้วยตนเอง หรือหากไม่สามารถอัปเดตไฟล์ได้downloaderเนื่องจากคุณลบไดเรกทอรีนั้นคุณสามารถเพิกเฉยได้

  1. vi PATCH_SUPEE-8788_CE_1.8.1.0_v1-2016-10-11-06-54-44.sh(หรือชื่อไฟล์ที่คล้ายกัน) เปลี่ยน_apply_revert_patch dry-runเป็นหน้าตา #_apply_revert_patch dry-run

  2. เรียกใช้โปรแกรมปะแก้โดยการออก ./PATCH_SUPEE-8788_CE_1.8.1.0_v1-2016-10-11-06-54-44.sh

ที่จะแก้ไขไฟล์ของคุณ

  1. แสดงความคิดเห็น_apply_revert_patchถึง#_apply_revert_patch

  2. เรียกใช้โปรแกรมปะแก้อีกครั้งเพื่อเพิ่มapp/etc/app/etc/applied.patches.listรายการ

  3. grep สำหรับไฟล์. rej ทั้งหมดด้วย

    git status | grep *.rej

  4. ทำงานด้วยตนเองในการเปลี่ยนแปลงเหล่านั้น

ปัญหาหลังจากใช้โปรแกรมแก้ไข

แบบฟอร์มคีย์

  • สำหรับ Magento เวอร์ชันก่อนหน้า 1.8 จะมีการเปลี่ยนแปลงในfrontend/base/defaultแม่แบบ ตรวจสอบให้แน่ใจว่าคุณใช้การเปลี่ยนแปลงเดียวกันกับธีมของคุณด้วยตนเองหากไฟล์เหล่านั้นแทนที่ไฟล์เหล่านี้

    โดยเฉพาะอย่างยิ่งคีย์แบบฟอร์มได้รับการเพิ่มสำหรับการดำเนินการส่วนหน้าเช่น:

    • การลบรายการออกจากสิ่งที่ปรารถนา
    • การลบที่อยู่ลูกค้าจากมุมมองร้านค้า
    • อัปเดตรายการราคาในตะกร้าของคุณ

    ดูคำตอบนี้โดย @LukeRogers หากคุณประสบปัญหากับการกระทำเหล่านี้

เครื่องมืออัปโหลดเอง

Unirgy_Rapidflow และส่วนขยายอื่น ๆ ที่มีรูปแบบการอัปโหลดที่กำหนดเองจะไม่ทำงานอีกต่อไป

ดูคำตอบนี้โดย @mpchadwick และแสดงความคิดเห็นโดย @lloiacono

ฉันแก้ไขโดยแทนที่$this->getUploader()->getConfig()ด้วย$this->getUploader()->getUploaderConfig()ในUnirgy_RapidFlow_Block_Adminhtml_Profile_Edit_Tab_Upload

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

grep -R 'getUploader()->getConfig();' app/code/community

รายงานข้อความผิดพลาด

  • ข้อผิดพลาดร้ายแรงของ PHP: การเรียกไปยังฟังก์ชันที่ไม่ได้กำหนด hash_equals ()

    ที่เกิดขึ้นถ้าคุณอยู่ใน PHP รุ่นก่อน 5.6 และแทนที่code/core/Mage/core/functions.phpในcode/local/Mage/core/functions.php(ซึ่งอาจจะมีกรณีถ้าคุณใช้ส่วนขยาย Fishpig) ดูคำตอบนี้โดย @ClaudiuCreanga


แก้ไขปัญหาใน v2 ของแพทช์

หากคุณพบปัญหาใด ๆ เหล่านี้คุณอาจใช้แพทช์เวอร์ชั่น 1 ("v1" ในชื่อไฟล์) ดาวน์โหลดแพตช์อีกครั้งเพื่อรับ "v2" ซึ่งแก้ไขปัญหาเหล่านี้:

  • มีปัญหาความเข้ากันได้กับ SUPEE-3941 และ downloader/lib/Mage/HTTP/Client/Curl.php

  • 'ข้อยกเว้น' พร้อมข้อความ 'ประเภทข้อมูลที่ไม่รองรับ N' ใน /lib/Unserialize/Reader/ArrValue.php

  • ชุดข้อมูลแก้ไขสำหรับ EE 1.14.2.0 มีไฟล์ใหม่ test_oauth.php ซึ่งคุณควรลบ! ดูคำตอบนี้โดย @MatthiasZeis


เพิ่มแบบฟอร์มคีย์เมื่ออัปเดตรายการคำพูดในตะกร้าไม่ใช่สิ่งที่เพิ่มเข้ามาด้วย SUPEE-8788 (ไม่ใช่จาก 1.9.2.4 เป็นอย่างน้อย)
Raphael ที่ Digital Pianism

@RaphaelatDigitalPianism อย่างน้อยที่สุดแพตช์ 1.13.0.1 จะเพิ่มการตรวจสอบความถูกต้องของแบบฟอร์มให้กับMage_Checkout_CartController::updatePostActionเวอร์ชันแพตช์อื่น ๆ ด้วย
ลุคร็อดเจอร์ส

23

ถ้าคุณได้รับ

Call to undefined function hash_equals() error

แม้ว่าแพตช์ของคุณจะประสบความสำเร็จนั่นหมายความว่าคุณได้คัดลอก function.php มาapp/code/local/Mage/Coreแล้ว

คุณจะต้องแทรกฟังก์ชั่นนั้นด้วยเพราะไฟล์นั้นจะเขียนทับแกนกลาง

ดังนั้นแทรกในapp/code/local/Mage/Core/functions.phpตอนท้าย:

if (!function_exists('hash_equals')) {
    /**
     * Compares two strings using the same time whether they're equal or not.
     * A difference in length will leak
     *
     * @param string $known_string
     * @param string $user_string
     * @return boolean Returns true when the two strings are equal, false otherwise.
     */
    function hash_equals($known_string, $user_string)
    {
        $result = 0;

        if (!is_string($known_string)) {
            trigger_error("hash_equals(): Expected known_string to be a string", E_USER_WARNING);
            return false;
        }

        if (!is_string($user_string)) {
            trigger_error("hash_equals(): Expected user_string to be a string", E_USER_WARNING);
            return false;
        }

        if (strlen($known_string) != strlen($user_string)) {
            return false;
        }

        for ($i = 0; $i < strlen($known_string); $i++) {
            $result |= (ord($known_string[$i]) ^ ord($user_string[$i]));
        }

        return 0 === $result;
    }
}

1
Offhand ฉันรู้ว่า Fishpig ต้องการให้คุณทำสิ่งนี้ ดังนั้นหากคุณมีการติดตั้งสิ่งนี้จะเป็นปัญหาสำหรับคุณ
mpchadwick

1
หมายเหตุ: ฉันสับสนและเป็น MWI ที่ขอให้คุณแทนที่ function.php ไม่ใช่ Fishpig mwi-plugin.com/documentation/installation
mpchadwick

18

ในPATCH_SUPEE-8788_EE_1.14.2.0_v1-2016-10-10-02-27-03.shไฟล์test_oauth.phpจะถูกสร้างขึ้นในไดเรกทอรีรากของวีโอไอพี คุณจะต้องการที่จะลบหนึ่ง (หรืออย่างน้อยไม่ได้ปรับใช้กับการผลิต) เพราะมันสามารถเปิดเผยร่องรอยยกเว้นสแต็คที่สมบูรณ์ให้กับบุคคลที่เรียก URL ตัวอย่างhttps: //thedomain.tld/test_oauth.php


เยี่ยมมาก Matthias! จะเป็นรูปแบบที่ค่อนข้างแย่ในการปรับใช้ APPSEC 17 แพ็ตช์และเปิดเวกเตอร์อื่นพร้อมกัน คุณรายงานสิ่งนี้ต่อ Magento หรือยัง
ไบรอัน 'BJ' Hoffpauir Jr.

ฉันเปิดตั๋วเกี่ยวกับสิ่งนี้ด้วยการสนับสนุน Magento เพราะฉันมั่นใจว่าคนอื่นมีอยู่ ณ จุดนี้ ยังไม่ได้ยินกลับมาเกี่ยวกับแพตช์ v2 แต่พวกเขาควรทราบถึงปัญหานี้
quasiobject

1
จะมี v2 ซึ่งจะเผยแพร่ในไม่ช้า ใช่ฉันรายงานเมื่อโพสต์ที่นี่
Matthias Zeis

1
ดูเหมือนว่าตอนนี้จะได้รับการแก้ไขแล้ว
Erfan

18

แอปพลิเคชั่นนี้สำหรับรุ่น MAGENTO 1.7


หากคุณใช้งาน 1.7.0.2 เวอร์ชัน 2 ของ SUPEE 8788 จะล้มเหลวในบรรทัดที่ 372 พยายามใช้การเปลี่ยนแปลงกับCurl.php:

patching file downloader/lib/Mage/HTTP/Client/Curl.php
Hunk #1 FAILED at 372.
1 out of 1 hunk FAILED -- saving rejects to file downloader/lib/Mage/HTTP/Client

คำแนะนำบอกว่าเราควรเปลี่ยน SUPEE-1533และติดตั้ง SUPEE-3941

ปัญหา: SUPEE-3941 ใช้ได้เฉพาะกับ Magento CE 1.8-1.9 เท่านั้น คุณสามารถลองใช้กับ 1.7 และจะมีผล ฉันคิดนักพัฒนาแพทช์ Magento ควรปล่อยรุ่น 3 ของ SUPEE-8788 สำหรับผู้ที่ใช้ magento ที่ต่ำกว่า 1.8 หรือสร้าง patch เพิ่มเติม SUPEE-3941 ที่ออกแบบมาสำหรับรุ่นต่ำกว่า 1.8

Btw รุ่นที่ 1 ของสุภี-8788 ไม่ได้มีCurl.phpข้อผิดพลาดใน 1.7.0.2 (ผมทดสอบในการติดตั้งอีกมากมาย)

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

UPDATE:

Magento กล่าวว่าโดยทั่วไปแล้วมันก็โอเคที่จะติดตั้งแพตช์ SUPEE-3941 ใน Magento 1.7.0.2 เวอร์ชั่นเพื่อหลีกเลี่ยงข้อผิดพลาดในการใช้ SUPEE-8788


เราได้รับการยอมแพ้
datasn.io

@ kavoir.com คุณจะได้รับข้อผิดพลาด CURL.PHP เดียวกันเมื่อติดตั้งบน 1.7.0.2 ??
ไอคอน

1
ปัญหาเดียวกันที่นี่ติดตั้ง 8788 V2 บน 1.7.0.2 แม้ว่าที่น่าสนใจเราได้รับข้อผิดพลาด curl.php เดียวกันในเว็บไซต์รุ่น 1.9.2.1 ใหม่ของเราซึ่งไม่มี SUPEE-3941 การคืนค่า 1533 ไม่ได้ช่วยแก้ปัญหานั้น
Jon Holland

@JonHolland ฉันเขียนจดหมายถึงทีม magento ... ฉันหวังว่าพวกเขาจะตอบกลับ
ไอคอน

2
ฉันได้รับการตอบกลับจากผู้นำชุมชนวีโอไอพีโดยทั่วไปแล้วมันก็โอเคที่จะติดตั้งแพทช์ 3941 ในเวอร์ชั่น 1.7.0.2 ..
ไอคอน

15

Original DashboardController.php (1.7.0.2- ไม่เจาะสดจาก magento)

  if ($params = unserialize(base64_decode(urldecode($gaData)))) {

1533 DashboardController.php Patched มีการเปลี่ยนแปลงดังต่อไปนี้

 if ($newHash == $gaHash) {
            $params = json_decode(base64_decode(urldecode($gaData)), true);
            if ($params) {

โปรแกรมปรับปรุง 8788 ทำการเปลี่ยนแปลงต่อไปนี้ใน DashboardController.php

 if (hash_equals($newHash, $gaHash)) {
            if ($params = unserialize(base64_decode(urldecode($gaData)))) {

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

ข้อเสนอแนะใด ๆ


2
IMO ผลลัพธ์สุดท้ายที่ต้องการคือการผสมผสานของสองอย่างนี้ ควรเป็น json_decode แต่ควรใช้ hash_equals แทน == สิ่งนี้จะช่วยป้องกันการโจมตีในเวลา (ซึ่งเป็นการยากที่จะหาช่องโหว่)
Peter O'Callaghan

เห็นด้วยกับ @Peter หากคุณใช้ Git ให้เปลี่ยนการกระทำของ SUPEE-1533 กลับไปใช้โปรแกรมปะแก้ใหม่กระทำแล้วเปลี่ยนการกระทำการคืนค่าอีกครั้ง ความขัดแย้งในDashboardController.phpนั้นควรได้รับการแก้ไขโดยอัตโนมัติ
Fabian Schmengler

1
คุณช่วยระบุรหัสสำหรับ DashboardController.php ที่เราควรเปลี่ยนหลังจากติดตั้ง 8788 ได้ไหม ฉันไม่แน่ใจว่าจะแก้ไขอะไรเหมือนที่ฉันได้กล่าวไว้ข้างต้น 1533 และ 8788 บรรทัด patchd ดูแตกต่างกัน คุณช่วยกรุณาระบุว่าเวอร์ชันที่แก้ไขด้วยตนเองควรมีลักษณะอย่างไร
ไอคอน

นี่เป็นรหัส 8788 ที่ควรมีลักษณะอย่างไรหลังจากการแก้ไขด้วยตนเองด้วยการอัพเดท 1533? if (hash_equals ($ newHash, $ gaHash)) {if ($ params = json_decode (base64_decode (urldecode ($ gaData))) {
ไอคอน

1
หมายเหตุเกี่ยวกับการคืนค่าคอมมิชชันสองครั้ง: คุณอาจสามารถใช้git revert -n 123456abและgit cherry-pick -n 123456abเลิกทำการ SUPEE-1533 ชั่วคราวโดยไม่ต้องสร้างคอมมิทพิเศษ
Matthias Zeis

14

ครึ่งล่อลวงให้โพสต์โพสต์นี้เป็นหลักความเห็นตามหรือไม่มีคำตอบที่ชัดเจน;)

มีการเพิ่มแป้นแบบฟอร์มลงในตัวควบคุมสองสามตัวตัวเลขจะแตกต่างกันไปตามรุ่นวีโอไอพี

หากคุณประสบปัญหา

  • การลบรายการออกจากสิ่งที่ปรารถนา
  • การลบที่อยู่ลูกค้าจากมุมมองร้านค้า
  • อัปเดตรายการราคาในตะกร้าของคุณ

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

class Mage_Checkout_CartController extends Mage_Core_Controller_Front_Action

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

ปัญหาเหล

กุญแจแบบฟอร์มมักจะถูกเพิ่มลงใน.phtmlแม่แบบที่มีรูปแบบเป็นพิเศษinputเช่น

<input name="form_key" type="hidden" value="<?php echo $this->getFormKey() ?>" />

มีรายการแบบฟอร์มทั้งหมดที่มีผลกระทบหรือไม่? ดังนั้นฉันสามารถทดสอบและทำให้พวกเขาทั้งหมดได้รับการแก้ไขทันทีและสำหรับทั้งหมด ไม่ต้องการความผิดปกติแบบโง่ ๆ เช่นนี้เพื่อรบกวนลูกค้าหรือลดอัตราการแปลง
datasn.io

หาก SUPEE 8788 ติดตั้งอย่างสมบูรณ์ใน 1.7 และจะทำการเปลี่ยนแปลงใน (app / design / frontend / base / default / template ..... ) แม้จะมีสิ่งที่อยากได้ส่วนหน้าของเว็บไซต์เปลี่ยน แต่ก็เพิ่มปุ่มลบทั้งหมดทำงานได้อย่างสมบูรณ์ เรายังต้องแก้ไขไฟล์ธีมด้วยตนเองหรือไม่? หรือตราบใดที่การปะแก้ไม่ทำลายอะไรเลยในส่วนหน้าเราสามารถปล่อยให้เป็นไปได้?
ไอคอน

11

ฉันพบปัญหาเดียวกันใน swf ใน 1.9.2.4

Fox Fixed - โปรดปฏิบัติตามขั้นตอนด้านล่าง

ขั้นตอนที่ 1 ดาวน์โหลดไฟล์แพทช์รักษาความปลอดภัย 8788 SSH ไปที่ลิงก์นี้: - https://magento.com/tech-resources/downloads/magento/

ขั้นตอนที่ 2 หลังจากดาวน์โหลดแพทช์รักษาความปลอดภัย 8788 ไฟล์ SSH กรุณาใส่ในโฟลเดอร์เดียวและสร้างไฟล์ซิปโฟลเดอร์เดียวกัน

ขั้นตอนที่ 3 กรุณาอัพโหลดโฟลเดอร์ Zip ไปที่รูทโฟลเดอร์ magento และ Unzip ผ่าน SSH Putty

ขั้นตอน 4. เรียกใช้โปรแกรมแก้ไข: - $ bash PATCH_SUPEE-8788_CE_1.9.2.4_v1-2016-10-11-07-03-03-46.sh

* หมายเหตุ: ไฟล์ patch ของเขามีไฟล์ไบนารี่ทั้งหมดในรูปแบบข้อความนี่คือสาเหตุที่เมื่อคุณอัปโหลดไฟล์ patch ความปลอดภัย 8788 SSH โดยไม่มีไฟล์ zip ไฟล์เดียวกันจะเสียหาย * * * *


10

หลังจากเปิดแอปพลิเคชัน SUPEE-8788 แล้วฉันไม่สามารถโหลดโปรไฟล์ "นำเข้า" โดยใช้ Unirgy_RapidFlow 2.0.0.18 ได้รับข้อผิดพลาด 500 ข้อ (ไม่มีสิ่งใดในบันทึก Apache หรือ HTTPD)

ฉันยังอยู่ระหว่างการแก้ไขข้อบกพร่องและทำงานกับ Unirgy เพื่อแก้ไข แต่ปรากฏว่าบล็อกตัวอัปโหลดทำให้เกิดปัญหา ( Unirgy_RapidFlow_Block_Adminhtml_Profile_Edit_Tab_Upload)

แพทช์แนะนำการเปลี่ยนแปลงหลายอย่างกับMage_Adminhtml_Block_Catalog_Product_Helper_Form_Gallery_Contentผู้ปกครอง

นอกเหนือจาก uRapidFlow แล้วโมดูลของบุคคลที่สามอื่น ๆ ที่อนุญาตให้อัปโหลดไฟล์อาจแตกเป็นผลมาจาก SUPEE-8788


คุณหาทางแก้ปัญหานี้แล้ว? ฉันคงได้โดยการเปลี่ยน $ this-> getUploader () -> getConfig () ด้วย $ this-> getUploader () -> getUploaderConfig () ใน Unirgy_RapidFlow_Block_Adminhtml_Profile_Edit_Tab_Upload
lloiacono

ดีถึงตอนนี้ Unirgy ดูเหมือนว่าจะมีการแก้ไขใน 2.0.0.23 secure.unirgy.com/release-notes.php?m=1#RapidFlowฉันกำลังทำงานกับลูกค้าเพื่อซื้อการอัปเกรดเพิ่มเติมและไม่สามารถตรวจสอบได้
mpchadwick

ทำงานนี้ใน docroot ของคุณเพื่อหาไฟล์อื่น ๆ ซึ่งต้องมีการแก้ไข: -r grep 'getUploader () -> getConfig () ./
lloiacono

8

ฉันได้รับข้อความต่อไปนี้เมื่อเรียกใช้งานสคริปต์แก้ไข:

can't find file to patch at input line 4753
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git downloader/lib/Mage/HTTP/Client/Curl.php downloader/lib/Mage/HTTP/Client/Curl.php
|index 6d0607e..5757be3 100644
|--- downloader/lib/Mage/HTTP/Client/Curl.php
|+++ downloader/lib/Mage/HTTP/Client/Curl.php

ผมคิดว่านี่เป็นเพราะผมเปลี่ยนชื่อโฟลเดอร์ "ดาวน์โหลด" ตามคำแนะนำจากhttps://www.magereport.com

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


8

Patch บน 1.9.0.0 ก็ล้มเหลวเช่นกัน (อาจเป็น 1.8.0.0 จนถึง 1.9.0.1 ได้รับผลกระทบ) เนื่องจาก SUPEE-3941 3941 แพทช์ดาวน์โหลด / lib / Mage / HTTP / ไคลเอนต์ / Curl.php และตอนนี้ 8788 ล้มเหลว

checking file downloader/lib/Mage/HTTP/Client/Curl.php
Hunk #1 FAILED at 378.
1 out of 1 hunk FAILED
checking file js/lib/uploader/flow.min.js

วิธีแก้ปัญหาสำหรับ 1.9.0.1 ด้านล่าง การเปลี่ยนแปลงนั้นละเอียดเกินไปอาจต้องปรับเปลี่ยนแพทช์ 8788

แก้ไข: แก้ไขโปรแกรมแก้ไขค้นหา Curl.php และแทนที่

diff --git downloader/lib/Mage/HTTP/Client/Curl.php downloader/lib/Mage/HTTP/Client/Curl.php
index c55f88d..31f9f77 100644
--- downloader/lib/Mage/HTTP/Client/Curl.php
+++ downloader/lib/Mage/HTTP/Client/Curl.php
@@ -378,8 +378,8 @@ implements Mage_HTTP_IClient
         }

         $this->curlOption(CURLOPT_URL, $uri);
-        $this->curlOption(CURLOPT_SSL_VERIFYPEER, FALSE);
-        $this->curlOption(CURLOPT_SSL_VERIFYHOST, 2);
+        $this->curlOption(CURLOPT_SSL_VERIFYPEER, true);
+        $this->curlOption(CURLOPT_SSL_VERIFYHOST, 'TLSv1');

         // force method to POST if secured
         if ($isAuthorizationRequired) {
diff --git js/lib/uploader/flow.min.js js/lib/uploader/flow.min.js 

กับ

diff --git downloader/lib/Mage/HTTP/Client/Curl.php downloader/lib/Mage/HTTP/Client/Curl.php
index c55f88d..31f9f77 100644
--- downloader/lib/Mage/HTTP/Client/Curl.php
+++ downloader/lib/Mage/HTTP/Client/Curl.php
@@ -378,8 +378,8 @@ implements Mage_HTTP_IClient
         $uriModified = $this->getSecureRequest($uri, $isAuthorizationRequired);
         $this->_ch = curl_init();
         $this->curlOption(CURLOPT_URL, $uriModified);
-        $this->curlOption(CURLOPT_SSL_VERIFYPEER, false);
-        $this->curlOption(CURLOPT_SSL_VERIFYHOST, 2);
+        $this->curlOption(CURLOPT_SSL_VERIFYPEER, true);
+        $this->curlOption(CURLOPT_SSL_VERIFYHOST, 'TLSv1');
         $this->getCurlMethodSettings($method, $params, $isAuthorizationRequired);

         if(count($this->_headers)) {
diff --git js/lib/uploader/flow.min.js js/lib/uploader/flow.min.js

ฉันปรับแต่งไฟล์ปะแก้เพื่อให้ทำงานได้กับ Magento ทุกรุ่นหลังจากติดตั้ง patch ก่อนหน้านี้ทั้งหมด: magentohosting.pro/files/MageHost.pro_fixed_SUPEE-8788_v2.zip
Jeroen Vermeulen - MageHost

8

นี่คือสิ่งที่ฉันได้รับ

Hunk #1 FAILED at 373.
1 out of 1 hunk FAILED -- saving rejects to file downloader/lib/Mage/HTTP/Client/Curl.php.rej
patching file js/lib/uploader/flow.min.js
patching file js/lib/uploader/fusty-flow-factory.js
patching file js/lib/uploader/fusty-flow.js
patching file js/mage/adminhtml/product.js
patching file js/mage/adminhtml/uploader/instance.js
patching file skin/adminhtml/default/default/boxes.css
patching file skin/adminhtml/default/default/media/flex.swf
patching file skin/adminhtml/default/default/media/uploader.swf
patching file skin/adminhtml/default/default/media/uploaderSingle.swf
patching file skin/adminhtml/default/default/xmlconnect/boxes.css

รับข้อผิดพลาดที่แน่นอนเดียวกันกับการติดตั้ง ชอบที่จะรู้ว่าถ้าคุณคิดอะไรออก
TunaMaxx

Nope ยังคงรอให้คนอื่นคิดเรื่องนี้
ฮาอิม

2
ดูmagento.stackexchange.com/a/73957/9276 หากไฟล์ Curl.php ของคุณมีการแก้ไขนี้ให้เลิกทำการเปลี่ยนแปลงนั้น (เปลี่ยนสายเป็น CURLOPT_SSL_CIPHER_LIST / 'TLSv1') ให้ใช้โปรแกรมแก้ไขและทำซ้ำการเปลี่ยนแปลง
โจ

ขอบคุณ @Joe เพิ่งกลับมาที่นี่เพื่อโพสต์ข้อมูลเดิม คุณเอาชนะฉันมัน! นั่นคือสิ่งที่ฉันจะไปนอน :)
TunaMaxx

มีปัญหาเดียวกันนี่แก้ไขได้ ขอบคุณ!
dafyddPrys

8

ดูเหมือนว่า Magento จะเปิดตัว SUPEE 8788 รุ่นปรับปรุงเพื่อแก้ไขความเข้ากันได้ของ SUPEE 1533 ฉันไม่แน่ใจว่าเป็นความคิดที่ดีที่จะใช้การแก้ไขด้วยตนเองทันที การเปลี่ยนแปลงด้วยตนเองอาจทำให้การอัพเดทแพตช์ในอนาคตด้อยลง อยากได้ยินความคิดของคุณ

ได้รับการยืนยันจาก Magento Community Manager ในฐานะที่เป็น 13 ตุลาคม, 15:00 EST .. แพทช์ทั้งหมดสำหรับรุ่นต่ำกว่า 1.9 จะถูกลบออกจากรายการดาวน์โหลด https://www.magentocommerce.com/download?_ga=1.236497153.1889606568.1445610645 ดูโพสต์: https://community.magento.com/t5 / การรักษาความปลอดภัยแพทช์ / สุภี-8788-AND-สุภี-1533-เข้ากันไม่ได้-ก้อนใหญ่ข้อผิดพลาด / MP / 50514 / ไฮไลท์ / เท็จ # M1805


1
หากแพทช์ที่อัปเดตมีผลลัพธ์เหมือนกันทุกประการกับการแก้ไขด้วยตนเองของเราและฉันหวังว่าจะเป็นเช่นนั้นฉันจะไม่เห็นปัญหา โปรแกรมแก้ไขที่ปรับปรุงแล้วจะไม่จำเป็นและโปรแกรมแก้ไขในอนาคตจะไม่เห็นความแตกต่าง
Fabian Schmengler

1
@fschmengler ค่อนข้างคล้ายกับ PHP 5.5 ที่เข้ากันไม่ได้สำหรับ SUPEE-7405 IMO แพทช์จะสะท้อนถึงการแก้ไขด้วยตนเอง
Raphael ที่ Digital Pianism

1
@fschmengler สำหรับวีโอไอพีความรู้ของฉันจะปล่อยแพทช์เดียวกันอีกครั้งพร้อมการแก้ไข ฉันเดาว่ามันดีที่สุดที่จะลบ patch เก่า (แก้ไขตัวเอง) และติดตั้งใหม่ (อาจจะปล่อยในวันถัดไปพรุ่งนี้เราควรจะมีการอัพเดทขอบคุณสำหรับความช่วยเหลือ!
ไอคอน

ฉันไม่ได้สงสัยคุณค่าของการมีส่วนร่วมนี้ แต่ยึดติดกับสไตล์ Q&A คำตอบนี้ดูเหมือนจะไม่ใช่คำตอบสำหรับฉันการอัปเดตเพิ่มเติมที่ @fschmengler สามารถเพิ่มในคำถามเดิมของเขา (หรือคุณสามารถเพิ่มลงใน คำตอบ Wiki ชุมชน)
7ochem

8

เรากำลังรับรายงานปัญหาใหม่ต่อไปนี้ที่ฉันไม่เห็นในโพสต์อื่น:

  • ข้อยกเว้นในรุ่นใหม่ในบางกรณี - การเรียกเมธอด addCrumbs () (ในกรณีที่ getStoreConfig (เว็บ / ค่าเริ่มต้น / show_cms_breadcrumbs) ไม่ได้ถูกกำหนด) ไม่ควรส่งผลกระทบต่อแพทช์เพียงการเปิดตัว 1.9.3 / 1.14.3 เท่านั้น

'ข้อยกเว้น' พร้อมข้อความ 'ชนิดข้อมูลที่ไม่รองรับ N' ใน /lib/Unserialize/Reader/ArrValue.php ใน 1.9.1.0 และอาจเป็นรุ่นก่อนหน้านี้เมื่อมีการใช้โปรแกรมปะแก้ แก้ไขใน patch version 2

ขณะนี้ยังไม่มีวิธีแก้ไขปัญหาง่าย ๆ ที่รู้จักสำหรับปัญหาเหล่านั้น เรากำลังดำเนินการเพื่อแก้ไขปัญหาเหล่านี้ในเวอร์ชั่นใหม่


การแก้ไขที่เป็นไปได้สำหรับข้อผิดพลาดประเภทข้อมูลที่ไม่สนับสนุน N gist.github.com/balloz/ceaf5feb5ac66caaa82342441d32aa88
Raphael ที่ Digital Pianism

มีความคิดใดที่จะเอาชนะข้อผิดพลาด Curl.php เมื่อติดตั้ง SUPEE 8788 ในเวอร์ชัน 1.6 และ 1.7
ไอคอน

8

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

หากต้องการทำซ้ำให้แก้ไขผลิตภัณฑ์ที่สามารถดาวน์โหลดได้และคลิกที่แท็บข้อมูลที่สามารถดาวน์โหลดได้ :

  1. เปิดแถวตัวอย่างของหีบเพลงและเรียกดูไฟล์ตัวอย่าง
  2. บนแถวลิงค์ของหีบเพลงให้เรียกดูลิงค์ดาวน์โหลด
  3. คลิกอัปโหลดไฟล์จากภายในส่วนลิงก์

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

ฉันสามารถทำซ้ำสิ่งนี้ในวานิลลาติดตั้ง 1.7.0.2 CE ที่ติดตั้งแล้ว


พบว่านี่เป็นพฤติกรรมของ JS lib พื้นฐานที่ใช้สำหรับการอัปโหลด: github.com/flowjs/flow.js/issues/76
Laura

6

ใช่ฉันพบปัญหาอื่นเมื่อลงชื่อเข้าใช้มันจะส่งคืนสิ่งนี้เสมอ:

ฉันพบว่าเป็นเพราะในระดับ Enterprise_Pci_Model_Observer บรรทัดที่ 165

แทน:

if (!Mage::helper('core')->getEncryptor()->validateHashByVersion($password, $model->getPassword())) {

สิ่งนี้จะแก้ไข:

if (!Mage::helper('core')->getEncryptor()->validateHashByVersion($password, $model->getPasswordHash())) {

เนื่องจากฉันไม่ชอบการเปลี่ยนแกนกลาง (แม้จะย้ายไปอยู่ในพื้นที่) จึงเป็นการดีที่สุดหาก Magento แก้ไขหรือชี้แจงสิ่งนี้ ในขณะนี้ฉันกำลังสร้างส่วนขยายใหม่เพื่อขยายและสร้างฟังก์ชั่นสำหรับ getPassword () (เนื่องจากฉันต้องการให้แน่ใจว่า devs ทั้งหมดใช้โหมดนักพัฒนาซอฟต์แวร์ใน)


2
ขณะนี้มีการใช้ V2 ของแพตช์ฉันพบปัญหาการแพตช์ EE1.12 เดียวกัน ดูเหมือนว่าไฟล์นี้จะมีการเปลี่ยนแปลงในบางช่วงระหว่าง 1.12 ถึง 1.14 แต่ไม่ได้เป็นส่วนหนึ่งของแพตช์
Chris

1
ยกให้กับวีโอไอพีและพวกเขาก็จัดหาแพตช์เพิ่มเติมเพื่อแก้ไขปัญหา การเปลี่ยนแปลงจะเหมือนกันกับข้างต้น
Chris

6

การแก้ไขไฟล์ Patch

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

หากคุณมีบรรทัดคำสั่งที่มีประโยชน์เช่น linux / * unix ลองใช้sedยูทิลิตี้เพื่อลบบรรทัดที่ระบุ

Props ถึง @fooman สำหรับคำแนะนำ ดูเค้าร่างดั้งเดิมของเขา

ตัวอย่าง sed -ie '101,111d' PATCH_SUPEE-8788_CE_1.7.0.2_v1-2016-10-11-06-36-18.sh

การดำเนินการนี้จะลบบรรทัดที่ 101 ถึง 111 โดยรวม

ปัญหาการส่งแบบฟอร์ม

หากคุณเห็นปัญหาดังกล่าวข้างต้นคุณสามารถ:

<?= $this->getBlockHtml('formkey'); ?>

สำหรับข้อมูลเพิ่มเติมอ้างอิงโพสต์นี้ getBlockHtml ('formkey') คืออะไร?


4
ระวังด้วย<?=มันไม่ได้เปิดใช้งานในการกำหนดค่า php ทุกครั้ง
Raphael ที่ Digital Pianism

@RaphaelatDigitalPianism คุณถูกต้อง แม้ว่า<?=จะเปิดใช้งานโดยค่าเริ่มต้นในการกำหนดค่า php.ini ส่วนใหญ่บางโฮสต์เลือกที่จะปิดการใช้งาน
Sergei Filippov

5

CE 1.6.2.0 และ SUPEE-3941

หากต้องการใช้โปรแกรมแก้ไขความปลอดภัย SUPEE-8788 (เวอร์ชัน 2), ( http://devdocs.magento.com/guides/m1x/other/ht_install-patches.html#apply-8788-new ) ขอแนะนำให้ใช้ SUPEE-3941 ก่อน .

อย่างไรก็ตามในหน้าดาวน์โหลดโปรแกรมแก้ไขไม่มีโปรแกรมแก้ไข SUPEE-3941 สำหรับ CE 1.6.2.0 แพตช์นี้มีให้สำหรับ CE 1.8 และ 1.9 เท่านั้น

ตามที่กล่าวไว้ในหัวข้อนี้ดูเหมือนว่าจะไม่เป็นไรที่จะใช้แพทช์ SUPEE-3941 ที่มีอยู่ (สำหรับ CE 1.8 และ 1.9) ใน CE 1.7

SUPEE-3941 (สำหรับ CE 1.8 และ 1.9) ใช้กับ CE 1.6.2.0 หรือไม่ ฉันลองใช้กับ CE 1.6.2.0 และได้รับข้อผิดพลาดดังต่อไปนี้:

Checking if patch can be applied/reverted successfully...
-e ERROR: Patch can't be applied/reverted successfully.

checking file downloader/Maged/Model/Connect.php
Hunk #1 succeeded at 489 (offset 3 lines).
checking file downloader/lib/Mage/Connect/Backup.php
checking file downloader/lib/Mage/Connect/Command.php
Hunk #1 FAILED at 64.
Hunk #2 succeeded at 205 with fuzz 2 (offset -44 lines).
Hunk #3 succeeded at 382 (offset -53 lines).
1 out of 3 hunks FAILED
checking file downloader/lib/Mage/Connect/Command/Install.php
Hunk #1 FAILED at 90.
Hunk #2 succeeded at 333 with fuzz 1 (offset 17 lines).
Hunk #3 succeeded at 363 (offset 17 lines).
1 out of 3 hunks FAILED
checking file downloader/lib/Mage/Connect/Packager.php
Hunk #4 FAILED at 268.
Hunk #5 FAILED at 290.
Hunk #6 succeeded at 369 with fuzz 2.
Hunk #7 FAILED at 377.
Hunk #9 FAILED at 428.
4 out of 10 hunks FAILED
checking file downloader/lib/Mage/Connect/Rest.php
Hunk #1 succeeded at 71 with fuzz 2 (offset -11 lines).
checking file downloader/lib/Mage/Connect/Singleconfig.php
Hunk #1 succeeded at 100 (offset -36 lines).
checking file downloader/lib/Mage/Connect/Validator.php
Hunk #1 succeeded at 418 (offset -41 lines).
Hunk #2 succeeded at 431 (offset -41 lines).
checking file downloader/lib/Mage/HTTP/Client/Curl.php
checking file downloader/template/settings.phtml

5

ล่าช้าเล็กน้อย แต่เราพบปัญหาในการแก้ไข SUPEE-8788 V2 ซึ่งอย่างน้อยใช้กับไฟล์ปะแก้สำหรับ Magento 1.7.0.2 และ 1.7.0.1 อาจเป็นเช่นนี้ใช้ได้กับรุ่นก่อนหน้าทั้งหมดที่มีรุ่นของโปรแกรมแก้ไขอยู่ เวอร์ชั่นวีโอไอพีตั้งแต่ 1.8 เป็นต้นไปจะไม่ได้รับผลกระทบเนื่องจากแพทช์ไม่เปลี่ยนแม่แบบสำหรับสิ่งเหล่านั้น

ในรายละเอียด

แพตช์ไม่มี formkey สำหรับไฟล์ app/design/frontend/base/default/template/persistent/checkout/onepage/login.phtml

หากไม่มีการลงชื่อเข้าใช้จะไม่สามารถใช้งานการชำระเงิน onepage ได้ (ไม่สามารถทำงานได้โดยไม่มีข้อผิดพลาด)

แก้ไขปัญหา

จะต้องมีการแทรก formkey เหมือนดังต่อไปนี้:

diff --git a/app/design/frontend/base/default/template/persistent/checkout/onepage/login.phtml b/app/design/frontend/base/default/template/persistent/checkout/onepage/login.phtml
index 9d15a577b..18483a3c5 100644
--- a/app/design/frontend/base/default/template/persistent/checkout/onepage/login.phtml
+++ b/app/design/frontend/base/default/template/persistent/checkout/onepage/login.phtml
@@ -71,6 +71,7 @@
         <h3><?php echo $this->__('Login') ?></h3>
         <?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
         <form id="login-form" action="<?php echo $this->getPostAction() ?>" method="post">
+        <?php echo $this->getBlockHtml('formkey'); ?>
         <fieldset>
             <h4><?php echo $this->__('Already registered?') ?></h4>
             <p><?php echo $this->__('Please log in below:') ?></p>

4

สำหรับไซต์ 1533 ที่ถูกแก้ไขเพียงแค่แทนที่บรรทัดด้านล่างจาก PATCH_SUPEE-8788 *****. sh:

diff --git app/code/core/Mage/Adminhtml/controllers/DashboardController.php app/code/core/Mage/Adminhtml/controllers/DashboardController.php
index 09ffc4c..367bf8e 100644
--- app/code/core/Mage/Adminhtml/controllers/DashboardController.php
+++ app/code/core/Mage/Adminhtml/controllers/DashboardController.php
@@ -91,7 +91,7 @@ class Mage_Adminhtml_DashboardController extends Mage_Adminhtml_Controller_Actio
         $gaHash = $this->getRequest()->getParam('h');
         if ($gaData && $gaHash) {
             $newHash = Mage::helper('adminhtml/dashboard_data')->getChartDataHash($gaData);
-            if ($newHash == $gaHash) {
+            if (hash_equals($newHash, $gaHash)) {
                 if ($params = unserialize(base64_decode(urldecode($gaData)))) {
                     $response = $httpClient->setUri(Mage_Adminhtml_Block_Dashboard_Graph::API_URL)
                             ->setParameterGet($params) 

โดย:

diff --git a/app/code/core/Mage/Adminhtml/controllers/DashboardController.php b/app/code/core/Mage/Adminhtml/controllers/DashboardController.php
index ab2d654..367bf8e 100644
--- a/app/code/core/Mage/Adminhtml/controllers/DashboardController.php
+++ b/app/code/core/Mage/Adminhtml/controllers/DashboardController.php
@@ -91,9 +91,8 @@ class Mage_Adminhtml_DashboardController extends Mage_Adminhtml_Controller_Actio
         $gaHash = $this->getRequest()->getParam('h');
         if ($gaData && $gaHash) {
             $newHash = Mage::helper('adminhtml/dashboard_data')->getChartDataHash($gaData);
-            if ($newHash == $gaHash) {
-                $params = json_decode(base64_decode(urldecode($gaData)), true);
-                if ($params) {
+            if (hash_equals($newHash, $gaHash)) {
+                if ($params = unserialize(base64_decode(urldecode($gaData)))) {
                     $response = $httpClient->setUri(Mage_Adminhtml_Block_Dashboard_Graph::API_URL)
                             ->setParameterGet($params)
                             ->setConfig(array('timeout' => 5))
diff --git a/app/code/core/Mage/Adminhtml/Block/Dashboard/Graph.php b/app/code/core/Mage/Adminhtml/Block/Dashboard/Graph.php
index da1b14a..b6d72c0 100644
--- a/app/code/core/Mage/Adminhtml/Block/Dashboard/Graph.php
+++ b/app/code/core/Mage/Adminhtml/Block/Dashboard/Graph.php
@@ -444,7 +444,7 @@ class Mage_Adminhtml_Block_Dashboard_Graph extends Mage_Adminhtml_Block_Dashboar
             }
             return self::API_URL . '?' . implode('&', $p);
         } else {
-            $gaData = urlencode(base64_encode(json_encode($params)));
+            $gaData = urlencode(base64_encode(serialize($params)));
             $gaHash = Mage::helper('adminhtml/dashboard_data')->getChartDataHash($gaData);
             $params = array('ga' => $gaData, 'h' => $gaHash);
             return $this->getUrl('*/*/tunnel', array('_query' => $params));

โดยพื้นฐานแล้วมันจะคืนค่า 1533 และเหลือ 8788 ตาม


ตามที่ฉันเข้าใจ 8787 จะแทนที่การเปลี่ยนแปลงใน DashboardController.php และการเปลี่ยนแปลง 1533 ดั้งเดิมจะถูกกำจัดหรือไม่
ไอคอน

2
ใช่วัตถุประสงค์ของ 1533 แทนที่ serialize () โดย json_encode () คือเพื่อลดโอกาสของการโจมตีผ่าน ($ newHash == $ gaHash) ในขณะที่ 8788 เพิ่ม hash_equals () เพื่อจุดประสงค์เดียวกัน
William Zhao

เยี่ยมมากฉันคิดว่าจะทำอย่างอื่นเล็กน้อยในเว็บไซต์ทดสอบของฉันฉันอัปโหลดไฟล์ DashboardController.php (ไฟล์ magento หุ้น) ที่สะอาดและติดตั้ง SUPEE 8788 อย่างไรก็ตามฉันได้อ่านฟอรัมนี้ ไฟล์ที่ปรับเปลี่ยน 8988 คุณคิดอย่างไรเกี่ยวกับวิธีการของฉัน
ไอคอน

ไอคอนดู diff ของฉันด้านบนในแบบที่คุณต้องการเปลี่ยนกลับบรรทัดที่ปรับปรุงโดย SUPEE 1533 ใน 'แอพ / รหัส / หลัก / ผู้วิเศษ / ผู้ดูแลระบบ / บล็อก / แดชบอร์ด / Graph.php' ถ้าคุณมี SUPEE 1533 ปะ ไม่เช่นนั้น Graph.php จะยิง params รูปแบบ json และคุณจะไม่สามารถถอดรหัสได้โดย unserialize ()
William Zhao

4

การจับ Authorize.net หักหลังจากใช้แพตช์ ให้สิทธิ์ทำงานได้ดี แต่เมื่อจับการชำระเงินในใบแจ้งหนี้จะช่วยให้ข้อผิดพลาด "เกตเวย์: หมายเลขบัตรเครดิตจะต้อง" ไฟล์บันทึกการชำระเงินแสดงx_typeค่าพารามิเตอร์การส่งผ่านทันทีauth_captureแต่ก่อนที่แพทช์จะใช้ในการผ่านprior_auth_captureซึ่งทำงานได้ดี ใครบ้างที่ประสบปัญหานี้

UPDATE: แก้ไขปัญหานี้ - Authorize.net ไม่ได้ทำการดักจับ


4

ฉันได้ติดตั้งสำเนาของ Magento 1.9.2.4 โดยใช้ SSH กับ SUPEE-8788 ฉันได้ทำการแก้ไขสำเนาของ Magento 1.9.2.4 อีกครั้งโดยใช้ ftp กับ SUPEE-8788 ฉันได้ทำการติดตั้งสำเนาของคุณภาพเยี่ยม 1.9.1.0 โดยใช้ SSH กับ SUPEE-8788 ฉันมี ใช้สำเนาวีโอไอพีสดใหม่ 1.9.3.1

ในเว็บไซต์คุณภาพเยี่ยมที่มี SUPEE-8788 ฉันพบปัญหาเดียวกัน (อาจเป็นข้อผิดพลาดของแพทช์)

การใช้ผลิตภัณฑ์ที่ดาวน์โหลดได้และไปในข้อมูลที่สามารถดาวน์โหลดได้> ตัวอย่างเมื่อฉันพยายามเพิ่มแถวใหม่ (หนึ่งหรือมากกว่า) โดยคลิกที่ "X" ฉันไม่สามารถลบแถวได้อีกป้อนคำอธิบายรูปภาพที่นี่

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

อัปเดต : ใช้ตัวตรวจสอบ Chrome ฉันเห็นข้อผิดพลาดนี้:ป้อนคำอธิบายรูปภาพที่นี่

******* ฉันพบวิธีแก้ปัญหา *******

ฉันใช้เวลา 2 วันและฉันหวังว่านี่จะช่วยคนอื่นได้นี่คือข้อผิดพลาดใน SUPEE-8788

เปิด samples.phtml ด้านใน app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable

ค้นหาฟังก์ชั่น

remove : function(event){
    var element = $(Event.findElement(event, 'tr'));
    alertAlreadyDisplayed = false;
    if(element){
        element.down('input[type="hidden"].__delete__').value = '1';
        element.down('div.flex').remove();
        element.addClassName('no-display');
        element.addClassName('ignore-validate');
        element.hide();
    }
},

และแทนที่ด้วย

remove : function(event){
    var element = $(Event.findElement(event, 'tr'));
    alertAlreadyDisplayed = false;
    if(element){
        element.down('input[type="hidden"].__delete__').value = '1';
        Element.select(element, 'div.flex').each(function(elm){
            elm.remove();
        });
        element.addClassName('no-display');
        element.addClassName('ignore-validate');
        element.hide();
    }
},

สิ่งนี้จะแก้ข้อผิดพลาด


3

ใช้ PATCH_SUPEE-8788_CE_1.9.2.1_v1-2016-10-11-07-00-43 ในสำเนาทดสอบเว็บไซต์ที่ใช้ 1.9.2.1 และทำให้การชำระเงินหัก ย้อนกลับการแก้ไขและการเช็คเอาต์ทำงานได้ตามปกติ

เมื่อส่งคำสั่งซื้อจะนำคุณกลับไปที่รถเข็นแทนที่จะชำระเงินให้สำเร็จ คิดว่าฉันจะรอรุ่น. 1 ก่อนลองอีกครั้ง


ดูเหมือนว่ามีข้อผิดพลาดเกิดขึ้นขณะบันทึกคำสั่งซื้อคุณตรวจสอบบันทึกของคุณหรือไม่
simonthesorcerer

ดูเหมือนว่า ... ข้อผิดพลาดร้ายแรงของ PHP: คลาส 'Mage_Core_Helper_UnserializeArray' ไม่พบใน ... / public_html / app / Mage.php ที่บรรทัด 547
Adam Lavery

@AdamLavery ไปที่ Var / cache และลบโฟลเดอร์แคช ฉันได้รับข้อผิดพลาดนั้นเมื่อฉันเปลี่ยนกลับ paches ให้เป็นต้นฉบับ มันเป็นสิ่งที่แคช
ไอคอน

แพทช์ใหม่ควรจะออกในไม่ช้า นี่คือการอัปเดตแพตช์ขนาดใหญ่เพื่อคาดหวังว่าจะไม่มีข้อผิดพลาด ... ใช่ ... ข้ามนิ้วมือ
ไอคอน

1
นี้อาจเป็นเพราะคุณกำลังขาดหายไปapp/code/core/Mage/Core/Helper/UnserializeArray.phpนี้ถูกบันทึกอยู่ในสุภี-6788 ซึ่งคุณอาจไม่ได้ติดตั้ง ดูเหมือนว่า SUPEE-8788 มีการขึ้นต่อกันที่ไม่มีเอกสารบน SUPEE-6788
Tyler V.

3

อีเมลใหม่ในชั่วโมงแรก ๆ จาก Magento ระบุว่าพวกเขาจะผลิตเวอร์ชันแพตช์ใหม่เพื่อจัดการกับปัญหาความเข้ากันได้ของ SUPEE-1533 และ SUPEE-3941 ดังนั้นอาจจะถือม้าของคุณสักหน่อย

รุ่นองค์กร 1.14.3 รุ่นชุมชน 1.9.3 และ SUPEE-8788 รุ่นองค์กร 1.14.3 และรุ่นชุมชน 1.9.3 ส่งมอบการปรับปรุงคุณภาพมากกว่า 120 เช่นเดียวกับการสนับสนุนสำหรับ PHP 5.6 พวกเขายังแก้ไขปัญหาด้านความปลอดภัยที่สำคัญซึ่งรวมถึง: ...

... โปรแกรมแก้ไขของ SUPEE-8788 แก้ไขปัญหาความปลอดภัยเหล่านี้ใน Magento เวอร์ชันก่อนหน้า น่าเสียดายที่เราได้ค้นพบว่าแพตช์ SUPEE-8788 สำหรับ Community Edition 1.8 และรีลีสก่อนหน้านี้และ Enterprise Edition 1.13 และรีลีสก่อนหน้านี้ล้มเหลวหากร้านค้าได้ติดตั้งแพตช์รักษาความปลอดภัย SUPEE-1533 เรากำลังดำเนินการเพื่อแก้ไขปัญหานี้และจะมอบแพตช์ใหม่ในอีกหนึ่งถึงสามวัน ก่อนหน้านั้นเราจะลบ patch ของ SUPEE-8788 เวอร์ชันเหล่านี้ออกจากการแจกจ่าย ...

อย่างไรก็ตามฉันกังวลว่าเวอร์ชันวีโอไอพีที่ใช้งานอยู่จะอยู่ระหว่าง CE 1.9.3 ซึ่งพวกเขาบอกว่าทำงานได้และเวอร์ชันใหม่จะมาเร็ว ๆ นี้สำหรับ V1.8 และต่ำกว่า ฉันได้ติดต่อพวกเขาดังนั้นจะรอและดูสิ่งที่พวกเขาพูด


ไม่ใช่ "คำตอบ" แต่เป็นข้อมูลที่มีประโยชน์หวังว่า
Jon Holland

สวัสดีจอนคุณสามารถแก้ไขคำถามเดิมของ @ fschmengler และเพิ่มคำถามด้านล่างนี้เป็นอัปเดตได้ ฉันคิดว่าเขาน่าจะใช้ได้ดีและอนุมัติการแก้ไขนั้น
7ochem

เป็นความคิดที่ดี แต่มีคนเพิ่มบางสิ่งไปแล้ว :)
Jon Holland

3

ฉันไม่ใช่แฟนตัวยงของการปะแก้ ส่วนตัวฉันลบไฟล์ Magento ทั้งหมดจากไดเรกทอรีของพวกเขาแล้วอัปโหลดเวอร์ชันใหม่ (โดยใช้เชลล์สคริปต์) ไฟล์ทั้งหมดที่ติดตั้งในช่วงหลายปีที่ผ่านมาเช่นโมดูลหรือธีมยังคงอยู่ที่นั่น สำหรับฐานข้อมูลฉันทำการเปรียบเทียบระหว่างเวอร์ชันที่ติดตั้งใหม่ วิธีหนึ่งคือการสร้างหรือลบคอลัมน์ / ตารางลงในฐานข้อมูลอีกวิธีหนึ่งคือการติดตั้งอีกครั้ง Magento เพียงแค่เปลี่ยนชื่อไฟล์ /app/etc/local.xml ฉันชอบอันแรก

หากคุณไม่เปลี่ยนโครงสร้างฐานข้อมูลเป็นเวอร์ชัน 1.9.3.0 คุณจะได้รับข้อผิดพลาดบางอย่างหรือคุณไม่สามารถโหลดพื้นที่ผู้ดูแลระบบได้ หากใครสนใจเปรียบเทียบไดเรคทอรี่วีโอไอพีและฐานข้อมูลระหว่าง Magento CE 1.9.2.4 และ 1.9.3.0 เพียงดาวน์โหลดไฟล์จากที่นี่:

การเปรียบเทียบ Magento: รุ่น 1.9.2.4 - 1.9.3.0

มีไฟล์ html สองไฟล์ที่ให้ผลลัพธ์ทางภาพที่ดีมาก

ฉันอัพเดทร้านค้า 4 แห่งในวันนี้โดยใช้วิธีการของฉันแทนการปรับปรุง ทั้งหมดกำลังทำงานโดยไม่มีปัญหาใด ๆ


เป็นเรื่องดีถ้าคุณอยู่ในเวอร์ชันล่าสุดและมีการเปิดตัวแพตช์ใหม่เนื่องจากเป็นกรณีที่มี 1.9.2.2, 1.9.2.3 และ 1.9.2.4 - อย่างไรก็ตามสำหรับแพทช์นี้ไม่มีการเปิดตัวใหม่ 1.9.2.5 . เวอร์ชั่น 1.9.3.0 ประกอบด้วยการเปลี่ยนแปลงเพิ่มเติมมากมายที่ไม่เกี่ยวข้องกับความปลอดภัย
Fabian Schmengler

ด้วยวิธีการของฉันฉันได้รับสองในหนึ่งเดียวการปรับปรุงความปลอดภัยและคุณสมบัติใหม่ ปัญหาเดียวคือคุณต้องเข้าใจสิ่งที่เกิดขึ้นในระบบไฟล์และฐานข้อมูลระหว่างรุ่นต่างๆ ไม่ใช่เรื่องใหญ่เมื่อคุณรู้ว่าคุณกำลังทำอะไรอยู่ และคุณมีการควบคุมที่ดีขึ้น ฉันใช้วิธีนี้ตั้งแต่รุ่น 1.7
ADDISON74

3

ไม่มีโชคในการติดตั้งส่วนใหญ่ของ Magento CE (ทั้งหมด 6 อัน) รุ่นต่าง ๆ : 1.9.1, 1.9.0.1, 1.8.1

ฉันดาวน์โหลดแพทช์ 8788 ที่ถูกต้องแล้ว ฉันแน่ใจว่าจะคืนค่า 1533 เมื่อเหมาะสม

ฉันได้รับผลลัพธ์เด่นที่สำคัญต่อไปนี้ซึ่งเป็นที่น่าสงสัย:

Checking if patch can be applied/reverted successfully...
ERROR: Patch can't be applied/reverted successfully.

...

checking file downloader/lib/Mage/HTTP/Client/Curl.php
Hunk #1 FAILED at 372.

... กำลังตรวจสอบแอปไฟล์ / รหัส / core / Mage / Adminhtml / controllers / IndexController.php Hunk # 1 สำเร็จที่ 373 (ออฟเซ็ต -19 บรรทัด) ...

can't find file to patch at input line 5810
|diff --git lib/Unserialize/Parser.php lib/Unserialize/Parser.php
|index 423902a..2c01684 100644
|--- lib/Unserialize/Parser.php
|+++ lib/Unserialize/Parser.ph

เช่นเดียวกับข้างต้นสำหรับ: lib / Unserialize / Reader / Arr.php lib / Unserialize / Reader / ArrValue.php และบอกว่านักล่าเหล่านั้นไม่สนใจ

หมายเหตุ: ไม่มีอะไรใน Unserialized / Reader ของฉัน ว่างเปล่าโดยสิ้นเชิง หมายเหตุ: Curl.php อยู่ในดาวน์โหลด dir ไม่ได้เปลี่ยนชื่อ มันเสร็จสิ้น แต่ฉันไม่เห็นไฟล์ SWF ถูกลบ ฉันไม่เห็นชุดข้อมูลแก้ไขที่นำไปใช้ในรายการ Apply.patches.list

ทำให้รู้สึกไม่


โอเค .. คิดออกทั้งหมด แน่นอนต้องทำงานผ่านแพทช์เก่าทั้งหมดในการสั่งซื้อ ฉันมีแพทช์รุ่นเก่าที่ไม่ได้ใช้งาน เมื่อฉันดึงสิ่งเหล่านั้นลงมาและนำไปวางบนบรรทัดสิ่งต่างๆก็เริ่มปะต่ออย่างเพียงพอ อย่างไรก็ตามฉันพบว่าเมื่อใดก็ตามที่ฉันมีข้อผิดพลาดก้อนใหญ่ในไฟล์สำหรับแพทช์ใด ๆ ฉันต้องเข้าไปในแพทช์และค้นหาสิ่งที่มันพยายามที่จะแทนที่และทำด้วยตนเองในการติดตั้งวีโอไอพีของฉัน จากนั้นลบบรรทัด "diff" เหล่านั้นออกจากแพทช์และรันซ้ำ เป็นหลักเมื่อใดก็ตามที่คุณเห็นข้อผิดพลาดก้อนใหญ่เข้าไปในแพทช์และดูสิ่งที่มันพยายามที่จะ +/- จากมันแล้วทำมันเอง
Rich Yessian

3

ผมเคยปะประมาณ 10 เว็บไซต์ในวันนี้และเว็บไซต์ที่แพทช์สุภี-8788 ล้มเหลวทุกมีสุภี-6788 MISSING

สิ่งนี้ทำให้ (ตัวอย่าง) ข้อผิดพลาดต่อไปนี้:

can't find file to patch at input line 5810
|diff --git lib/Unserialize/Parser.php lib/Unserialize/Parser.php
|index 423902a..2c01684 100644
|--- lib/Unserialize/Parser.php
|+++ lib/Unserialize/Parser.php

หลังจากติดตั้ง SUPEE-6788 แล้ว SUPEE-8788 จะได้รับการติดตั้งอย่างถูกต้อง


3

หากคุณได้รับHunk #1 failedข้อผิดพลาด xxx นี่คือสิ่งที่ฉันทำ

Hunk #1 failed at 373ผมได้ เกิดข้อผิดพลาด !! หลังจากบรรทัด

การตรวจสอบไฟล์ downloader / lib / Mage / HTTP / Client / Curl.php

ดังนั้นฉันจึงตรวจสอบCurl.phpไฟล์และพบว่าฉันได้แก้ไขไฟล์มาก่อน (แสดงความคิดเห็นหนึ่งบรรทัด) ฉันกู้คืนไฟล์ต้นฉบับและรันโปรแกรมปะแก้อีกครั้ง จากนั้นแพทช์ก็ประสบความสำเร็จ ;)

จากนั้นฉันตรวจสอบ:

/app/etc/applied.patches.list ทุกอย่างดูดี

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