ทำไม PATCH_SUPEE-6788 จึงไม่มีผลกับการติดตั้ง 1.7.0.2?


21

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


ผมทำงานเกี่ยวกับการใช้สุภี-6788 แพทช์ไปยังเว็บไซต์ CE 1.7.0.2 การใช้สคริปต์เปลือกที่มีให้โดยmagentocommerce.com/downloads ไซต์ดังกล่าวมีการใช้โปรแกรมปรับปรุงความปลอดภัยก่อนหน้านี้ทั้งหมด

ชื่อของสคริปต์คือPATCH_SUPEE-6788_CE_1.7.0.2_v1-2015-10-27-12-00-16.shและมี md5sum ของcfc0cf533fe36a5f573414f0feeb1590(แพทช์นี้ผิดปกติในการที่มันถูกปล่อยออกมาไม่มีการบีบอัด - แม้ว่าไฟล์จะไม่ปรากฏเสียหายหรือถูกตัดทอน)

เมื่อรันสคริปต์นี้คอนโซลเอาต์พุตจะปรากฏขึ้นเพื่อระบุว่าอย่างน้อยหนึ่งในแพตช์ที่รวมมานั้นล้มเหลวหรือถูกข้ามไป แต่ส่วนต่าง ๆ ของแพตช์สำเร็จ แต่gitไม่แสดงการเปลี่ยนแปลง สคริปต์ดังกล่าวได้รับการทดสอบในสภาพแวดล้อมที่แตกต่างกันสองแห่งโดยมี codebase เหมือนกันหนึ่งอันคือเวิร์กสเตชัน Ubuntu GNOME 14.04 LTS และอีกหนึ่งเซิร์ฟเวอร์แชร์ของnexcess.com (ใช้งาน CentOS)

สิ่งที่น่าสนใจคือเอาต์พุตในสภาพแวดล้อมทั้งสองนั้นแตกต่างกันเล็กน้อย สังเกตบรรทัดที่ขึ้นต้นด้วย "กำลังตรวจสอบ" vs "การปะแก้"

ตัวอย่างผลลัพธ์จากสภาพแวดล้อม Ubuntu:

bash PATCH_SUPEE-6788_CE_1.7.0.2_v1-2015-10-27-12-00-16.sh                                              [19:27:10]
Checking if patch can be applied/reverted successfully...
ERROR: Patch can't be applied/reverted successfully.

checking file .htaccess
Hunk #1 FAILED at 207.
1 out of 1 hunk FAILED
can't find file to patch at input line 38
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git .htaccess.sample .htaccess.sample
|index 546f18e..3e79c77 100644
|--- .htaccess.sample
|+++ .htaccess.sample
--------------------------
File to patch: 
Skip this patch? [y] 
Skipping patch.
1 out of 1 hunk ignored
checking file app/code/core/Mage/Admin/Model/Block.php
checking file app/code/core/Mage/Admin/Model/Resource/Block.php
checking file app/code/core/Mage/Admin/Model/Resource/Block/Collection.php
checking file app/code/core/Mage/Admin/Model/Resource/Variable.php
checking file app/code/core/Mage/Admin/Model/Resource/Variable/Collection.php
checking file app/code/core/Mage/Admin/Model/Variable.php
...

ตัวอย่างจากสภาพแวดล้อม CentOS:

bash PATCH_SUPEE-6788_CE_1.7.0.2_v1-2015-10-27-12-00-16.sh 
Checking if patch can be applied/reverted successfully...
ERROR: Patch can't be applied/reverted successfully.

patching file .htaccess
Hunk #1 FAILED at 207.
1 out of 1 hunk FAILED -- saving rejects to file .htaccess.rej
can't find file to patch at input line 38
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git .htaccess.sample .htaccess.sample
|index 546f18e..3e79c77 100644
|--- .htaccess.sample
|+++ .htaccess.sample
--------------------------
File to patch: 
Skip this patch? [y] 
Skipping patch.
1 out of 1 hunk ignored
patching file app/code/core/Mage/Admin/Model/Block.php
patching file app/code/core/Mage/Admin/Model/Resource/Block.php
patching file app/code/core/Mage/Admin/Model/Resource/Block/Collection.php
patching file app/code/core/Mage/Admin/Model/Resource/Variable.php
...

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


ฉันได้ลองวิธีแก้ปัญหาทั้งหมดที่กล่าวถึงข้างต้นแล้ว แต่ถึงกระนั้นฉันก็ไม่สามารถใช้โปรแกรมแก้ไข 6788 ได้สำเร็จ มีใครช่วยได้บ้างไหม? ขอบคุณ
Mesk

มีอาการเหมือนกันหรือไม่ หากไม่ใช่คุณควรถามคำถามใหม่เกี่ยวกับประเด็นเฉพาะของคุณ
STW

ใช้ไฟล์ของการติดตั้งสต็อควีโอไอพี จากนั้นให้แน่ใจว่าไฟล์.htaccess-File ของคุณมีบรรทัดว่าง 1 บรรทัดที่ท้ายไฟล์หลังจาก#FileETag noneนั้น และ.htaccess.sampleไฟล์จะต้องมีบรรทัดใหม่ว่างเปล่า 2 บรรทัดที่ท้ายไฟล์
pbaldauf

คำตอบ:


15

ปรากฏว่าการเปลี่ยนแปลงของฉัน.htaccessและการหายไป.htaccess.sampleนั้นเป็นตัวการ หลังจากเรียกคืนสำเนาสต็อกของไฟล์ทั้งสอง (จำเป็นต้องใช้ทั้งคู่) แพตช์จะปรากฏขึ้นเพื่อใช้งานได้สำเร็จ

เพื่อแก้ปัญหานี้โดยไม่สูญเสียการแก้ไข (จำเป็น) ฉันได้ทำตามขั้นตอนเหล่านี้:

  1. สร้างการสำรองข้อมูล.htaccessและ.htaccess.sample–either ด้วยระบบควบคุมเวอร์ชันของคุณหรือโดยการคัดลอกไฟล์

  2. คัดลอกหุ้น 1.7.0.2 รุ่น.htaccessและ.htaccess.sampleเข้า codebase ของฉันเปลี่ยนที่กำหนดเองของฉัน.htaccess

  3. นำ patch มาใช้ ผลลัพธ์นั้นสั้นกว่าก่อนหน้ามาก (2 บรรทัด)

  4. กระทำการเปลี่ยนแปลงทั้งหมดรวมถึง.htaccess(สำหรับลูกหลาน)

  5. ตรวจสอบเวอร์ชันก่อนหน้าของ.htaccessไม่มีแพทช์และใช้โปรแกรมแก้ไขกับไฟล์นั้นด้วยตนเอง

นี่คือgit diffแพทช์ที่แสดงบรรทัดเพิ่ม:

diff --git a/.htaccess b/.htaccess
index 60e1795..aca7f55 100644
--- a/.htaccess
+++ b/.htaccess
@@ -207,3 +207,28 @@
 ## http://developer.yahoo.com/performance/rules.html#etags

     #FileETag none
+
+###########################################
+## Deny access to cron.php
+    <Files cron.php>
+
+############################################
+## uncomment next lines to enable cron access with base HTTP authorization
+## http://httpd.apache.org/docs/2.2/howto/auth.html
+##
+## Warning: .htpasswd file should be placed somewhere not accessible from the web.
+## This is so that folks cannot download the password file.
+## For example, if your documents are served out of /usr/local/apache/htdocs
+## you might want to put the password file(s) in /usr/local/apache/.
+
+        #AuthName "Cron auth"
+        #AuthUserFile ../.htpasswd
+        #AuthType basic
+        #Require valid-user
+
+############################################
+
+        Order allow,deny
+        Deny from all
+
+    </Files>

หมายเหตุ:หากคุณประสบปัญหาที่คล้ายกัน แต่วิธีนี้ไม่สามารถแก้ไขได้คุณอาจพลาดโปรแกรมปรับปรุงความปลอดภัยก่อนหน้านี้ ตรวจสอบapp/etc/applied.patches.listและ / หรือใช้magereport.com/scanเพื่อตรวจสอบว่ามีการใช้แพตช์รักษาความปลอดภัยก่อนหน้านี้ & ndash; ** จำเป็นต้องใช้ **
STW

ฉันทำงานให้ฉัน
jruzafa

สิ่งนี้หมายความว่า? Warning: .htpasswd file should be placed somewhere not accessible from the webความคิดใด ๆ
Adarsh ​​Khatri

4

ฉันพยายามดาวน์โหลดเวอร์ชันสต็อก.htaccessและ.htaccess.sampleและแพทช์ยังคงไม่สามารถใช้งานได้แม้หลังจากใช้เวอร์ชันสต็อกแล้ว

สำหรับคนอื่นที่ประสบปัญหานี้ลองดูที่บทความนี้มันอธิบายถึงวิธีการลบ.htaccessและhtaccess.sampleชิ้นส่วนออกจากแพทช์เองจากนั้นเพิ่มด้วยตนเองหลังจาก: http://www.atwix.com/magento/security-patch-supee-6788 -installation-ปัญหา /

การแก้ไข - แก้ไขไฟล์แพตช์โดยการลบบรรทัด 163-195 เริ่มต้นด้วยบรรทัด

diff --git .htaccess .htaccess 

และจบลงด้วย

+    </Files>

คุณอาจต้องลบส่วนที่เกี่ยวข้องกับการhtaccess.sampleเริ่มต้นด้วย

diff --git .htaccess.sample .htaccess.sample

และสิ้นสุดที่

+    </Files>

หลังจากเสร็จสิ้นแล้วให้ลองใช้โปรแกรมแก้ไขอีกครั้งและควรจะใช้งานได้สำเร็จในเวลานี้

ต่อไปเราจะต้องเพิ่มสิ่งต่อไปนี้ในตอนท้ายของไฟล์.htaccessและ.htaccess.sampleไฟล์ของเราเพื่อให้ทันสมัยตามแพตช์

###########################################
## Deny access to cron.php
    <Files cron.php>

############################################
## uncomment next lines to enable cron access with base HTTP authorization
## http://httpd.apache.org/docs/2.2/howto/auth.html
##
## Warning: .htpasswd file should be placed somewhere not accessible from the web.
## This is so that folks cannot download the password file.
## For example, if your documents are served out of /usr/local/apache/htdocs
## you might want to put the password file(s) in /usr/local/apache/.

        #AuthName "Cron auth"
        #AuthUserFile ../.htpasswd
        #AuthType basic
        #Require valid-user

############################################

        Order allow,deny
        Deny from all

    </Files>

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


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


0

ฉันมีปัญหาเดียวกันนั่นเป็นเพราะฉันดาวน์โหลดแพตช์ผิด ฉันใช้ Magento EE 1.13 และฉันดาวน์โหลด CE patch ... ฉันดาวน์โหลด patch สำหรับ CE 1.8 ในขณะที่ทำตามบทแนะนำโดยคิดว่ามันจะใช้งานได้กับ EE 1.13 ตรวจสอบให้แน่ใจว่าคุณดาวน์โหลด patch สำหรับ Magento เวอร์ชันของคุณ


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