패치 일이 또 남았습니다. Magento 1.x 용 SUPEE-7405가 나오고 수정 사항 목록이 너무 깁니다. https://magento.com/security/patches/supee-7405
마지막 패치에 대한 경험이 있으면 패치를 적용 할 때 발생할 수있는 문제점과 고려해야 할 사항이 무엇인지 다시 묻습니다.
많은 XSS 문제가 다시 수정되었으므로 사용자 지정 테마를 수동으로 패치 할 것으로 예상됩니다. 다른 거있어? 이전 버전과 호환되지 않는 변경이 있습니까?
답변
2016 년 2 월 23 일 업데이트 : 패치가 V1.1으로 업데이트되어이 게시물에 나열된 여러 가지 중요한 문제가 해결되었습니다. 목록은 다음과 같습니다.
- 카트 병합 패치 (SUPEE-7978) : 동일한 아이템을 가진 카트가 올바르게 병합됩니다. 이전에는 한 품목이있는 카트가 동일한 품목이 포함 된 다른 카트와 병합 될 때 Magento가 장바구니 합계를 올바르게 병합하지 않았습니다. 장바구니에는 이제 하나의 항목 만 포함되며 총계는 정확합니다.
- SOAP API 패치 (SUPEE-7822) : Magento SOAP API가 이제 예상대로 작동합니다. 이전에는 SUPEE-7405 v1.0 패치를 설치 한 후 API 요청으로 인해 500 오류가 발생했으며 Magento는 예외를 기록했습니다.
- PHP 5.3 호환성 (SUPEE-7882) : 패치는이 버전을 지원하고있는 이전 버전의 Magento의 PHP 5.3과 호환되지 않았습니다. 이 문제가 발생한 판매자는 관리자에서 판매 정보를 볼 수 없었습니다.
- 파일 업로드 권한 : 원본 SUPEE-7405 패치에 의해 도입 된 더 엄격한 권한으로 인해 호스팅 제공 업체 구성에 따라 많은 판매자가 업로드 한 제품 이미지를 볼 수 없었기 때문에 패치는 덜 제한적인 파일 권한 (파일의 경우 0666, 디렉토리의 경우 0777)을 복원합니다. .
패치를 파고 들고 나면 내가 찾은 관련 / 흥미로운 것들이 있습니다 (NB :이 목록은 CE 1.9.2.0-1.9.2.2에 대한 패치를 분석하여 만들어졌으며, 이전 버전의 Magento에 영향을 미치는 패치가 더있을 것입니다) :
- (패치 V1.1에서 수정)
이 패치[]
대신에array()
를 사용 하면 PHP <5.4와 호환되지 않습니다 (아래 알려진 문제 참조). - 언급 한 바와 같이 대부분의 변경 사항은 XSS 문제와 관련하여 HTML 이스케이프 및 데이터 삭제 입니다.
- 관리자 로그인 에 양식 키 유효성 검사 가 추가되었습니다 .
Mage_Admin_Model_Observer
- 폼 키 유효성 검사 받는 사람이 추가되었습니다 관리자가 비밀번호를 잊어 버렸 에
Mage_Adminhtml_IndexController
- 양식 키 유효성 검사 가 관리자 재설정 비밀번호 에 추가되었습니다 .
Mage_Adminhtml_IndexController
- 양식 키 유효성 검사 가 프론트 엔드 카트 삭제 조치 에 추가되었습니다 . 폼 키에 추가
getDeleteUrl
의Mage_Checkout_Block_Cart_Item_Renderer
상기 검증에서deleteAction
의Mage_Checkout_CartController
. - 이벤트는 이제 모든 소문자로 전달됩니다 (영향을받는 모든 구성 파일이 수정
controller_action_postdispatch_checkout_onepage_saveOrder
됨controller_action_postdispatch_checkout_onepage_saveorder
). 이것은 로컬 옵저버 구성에 영향을 미치지 않습니다 . 자세한 내용은 여기 : https://twitter.com/foomanNZ/status/689924329065164800 - 업로드 된 파일이 이미지인지 확인 하는 새로운 유효성 검사기 가 추가되었습니다.
Mage_Core_Model_File_Validator_Image
- 새로운 가져 오기 / 내보내기 섹션이 나타납니다 :
System => Configuration =>Advanced > System => Escape CSV Fields
- 새로운 이벤트 파견 :
admin_user_validate
미만Mage_Admin_Model_User
- SVG는 더 이상 유효한 파비콘 확장이 아닙니다
- Authorizenet을 사용하는 사람들에게는 (몇 가지) 변경 사항이 있지만 시스템에 어떤 영향을 미치는지 확실하지 않습니다.
Mage_Authorizenet_Helper_Admin
성공 주문 URL을 얻는 데 사용되는 새로운 관리자 도우미 ( )가 변경되었습니다 . - 새로운 젠드 수업 :
Zend_Xml_Security
. 그 목적은 잠재적 인 XXE 및 XEE 공격에 대해 XML 문자열을 스캔하는 것입니다. 그러나 다른 수정 된 파일에서 그것에 대한 참조를 찾지 못했습니다. - 관리자 패널을 통해 업로드 된 파일 (예 : 제품 이미지 업로드) 은 기본적으로 세계에서 읽을 수 없습니다 (이전 : 777 / 이후 : 640).
- 디렉토리는 월드 실행 파일이 아닙니다 (755 이전 / 이후 : 750). 웹 서버가 PHP와 다른 사용자로 실행되는 경우 웹 사이트에 이미지가 표시되지 않는 문제가 발생할 수 있습니다 (크레딧 : @Rob Mangiafico)
- 에 관한 프론트 엔드 템플릿을 다음 만들어진 유일한 수정하는 탈출 데이터 시스템 차단기 아니지만 여전히 사용자 지정 테마에 구현하는 것이 (그리고 그렇게 많이하지 작업에 영향을 두 프론트 엔드의 파일이있다는;))
패치 후 알려진 문제 :
이 목록을 가능한 한 최신 상태로 유지하도록 노력하겠습니다.
새로운 문제 / 질문을 시작하기 전에 누락 된 패치로 인해 많은 문제가 발생하는 것처럼 보이는 이전 패치 를 모두 적용 했는지 확인하십시오 .
또 다른 것은 코어 파일을 수정 한 경우 패치 적용에 실패 할 수 있습니다. 당신이 발생하는 경우 Hunk # failed at
: 특정 파일에 대한 오류와 사용자가 이전의 모든 패치를 적용했는지 100 % 것, 미러를 선택하여 당신은 당신의 젠토 버전에서 원본 파일을 확인하시기 바랍니다 https://github.com / OpenMage / magento- 거울 /
- 삭제 된 세션 문제 (수정) ( https://magento.stackexchange.com/a/116324/2380 )
- 패치 후 백엔드에 로그인 할 수 없습니다 : “잘못된 양식 키”오류. => 브라우저 쿠키를 플러시하고 var / session 파일을 삭제하십시오 ( Magento 1.9.2.3. Google 크롬에 로그인하지 않음 )
- (패치 v1.1에서 수정)
관리자 주문보기 페이지가 비어 있거나 손상되었습니다 => PHP <5.4 비 호환성과 관련이 있습니다. => 수정 사항은 여기에서 찾을 수 있습니다 : https://magento.stackexchange.com/a/98237/2380 / 버그 보고서를 작성했습니다 : https://www.magentocommerce.com/bug-tracking/issue/index/ id / 1266 (신용 : @ Moonman67). - (패치 v1.1에서 수정)
SOAP API URL/index.php/api/v2_soap/index/?wsdl=1
에서 500 오류가 발생합니다 => 여기에서 찾을 수있는이 문제를 해결했습니다. https://magento.stackexchange.com/a/98790/2380 / 또한 버그 보고서를 만들었습니다. 이 하나 : https://www.magentocommerce.com/bug-tracking/issue/index/id/1265 (신용 : @ Moonman67) - (패치 v1.1에서 수정)
파일 업로드 권한과 관련된 문제 - Magento 1.7.0.0 중단에 패치 적용 : https://magento.stackexchange.com/a/98246/2380
- HHVM의 성공 페이지로 리디렉션되지 않는 체크 아웃 : https://magento.stackexchange.com/a/98334/2380
- 정의되지 않은 클래스 상수 AREA ADMINHTML in
app/code/core/Mage/Core/Model/Config.php
(아마도 EE에만 해당) : SUPEE 7405 Enterprise Edition 치명적 오류 정의되지 않은 클래스 상수 ‘AREA_ADMINHTML Mage_Core_Helper_Abstract::escapeHtml()
1.4.0.1 에서 정의되지 않은 메소드 호출 : Magento 1.4.0.1에 패치 7405를 설치 한 후 오류- 마법사 레지스트리 키
_singleton/Mage_Core_Model_Domainpolicy
가 Magento 1.7에 이미 존재합니다 . 보안 패치 SUPEE-7405 오류 - 패치 후에 오브젝트가 아닌 멤버에서 getUsername () 멤버 함수를 호출 하십시오. SUPEE 7405 보안 패치를 적용한 후 Magento Admin에서 오류가 발생했습니다.
- 1.8.1.0에서 패치 후 권한 블록을 추가 할 수 없음 : 보안 패치 supee-7405 상위 메뉴가 표시되지 않은 후
- (이전 패치는 적용되지 않음)
1.7.0.2 패치 적용시 문제 : 보안 패치 SUPEE-7405 문제 - (핵심 파일이 변경되었습니다)
1.8.1 패치 적용시 문제 : supe 7405 Hunk # 2가 472에 실패했습니다. Magento 1.8.1 - (공급자 관련)
패치 후 전자 메일 대기열이 손상됨 : Magento 1.9.2.3 전자 메일 대기열이 작동하지 않음
영향을받는 파일 목록
이 페이지에서 찾을 수 있습니다 : https://magento.stackexchange.com/a/98232/2380 (credits @MagenX)
EE 만
- 당신은 마 젠토에 젠토 EE의 1.14.2.x에서 업데이트 한 경우 EE 1.14.2.3 대신에 패치를 적용하고, 또한 지원 패치 적용 SUPEE-5984를 하기 전에, 당신은해야 다시 다시 적용 이되기 때문에 릴리스에 포함되지 않습니다 . => https://magento.stackexchange.com/a/98805/2380
패치 7616에 관하여 :
- 패치를 적용 하기 전에 패치 4291 및 6237을 적용해야하는 것 같습니다 . 자세한 정보는 여기 : 7616_EE 7405_EE 패치 적용에 실패했습니다
- (패치 5344는 적용되지 않았습니다)
7405를 적용하기 전에 7616을 적용 할 때 발생할 수있는 문제 : SUPEE 7405-Hunk # 2 Failed at 43
마 젠토 패치에 대한 좋은 자료
- 중요 알림 : Magento 보안 패치를 다운로드하여 설치하십시오. (SSH 액세스가없는 FTP)
- 마법사 보고서 는 SUPEE-7405에 대한 검사를 추가했습니다 : https://www.magereport.com/
내가 놓친 부분이 있으면 언제든지 알려주세요.
답변
내가 주목 한 한 가지 문제는 사이트에서 PHP 5.4 미만의 버전을 사용하는 경우 패치가 호환되지 않는다는 것입니다.
Mage_Adminhtml_Helper_Sales
줄 번호 124 주위 의 클래스 에서 코드는 다음과 같습니다.
$links = [];
이것을 다음과 같이 확장해야했습니다.
// Patch not compatible with PHP version 5.3: overwrote Magento patch update
$links = array();
내가 겪은 또 다른 오류는 내가 설정 한 쿠키와 관련된 것으로 보입니다. 쿠키를 지우면 모든 페이지가 정상적으로로드되었습니다.
오류 예 :
Notice: unserialize() [function.unserialize]: Error at offset 0 of 13 bytes in `/var/www/website/app/code/core/Mage/Core/Helper/Cookie.php` on line 83
다른 사람 이이 문제에 부딪 쳤는지 확실하지 않지만 도움이되기를 바랍니다.
답변
SUPEE-7405로 Magento CE를 패치 할 때 발견 한 문제가 있습니다. 다음 줄을 대체합니다.
chmod($destinationFile, 0777);
와:
chmod($destinationFile, 0640);
파일에서 lib/Varien/File/Uploader.php
이 파일 권한은 실제로 644 여야하므로 백엔드에 이미지가 표시되지 않습니다. 640으로 설정 한 이유가 있습니까?
답변
Magento 1.7.0.0 신청시 댓글 삭제 app/design/adminhtml/default/default/template/authorizenet/directpost/iframe.phtml
-/* @var $_helper Mage_Authorizenet_Helper_Data */
1.7.0.0- https: //raw.githubusercontent.com/OpenMage/magento-mirror/1.7.0.0/app/design/adminhtml/default/default/template/authorizenet/directpost/iframe.phtml
1.7.0.1까지 추가되지 않았습니다 https://raw.githubusercontent.com/OpenMage/magento-mirror/1.7.0.1/app/design/adminhtml/default/default/template/authorizenet/directpost/iframe.phtml
답변
이 파일들이 패치되면 다음과 같은 영향을 볼 수 있습니다.
template : 관리 템플릿 대부분 패치.
+++ app/design/frontend/base/default/template/rss/order/details.phtml
+++ app/design/frontend/base/default/template/catalog/product/view/options/type/file.phtml
+++ app/design/adminhtml/default/default/template/sales/order/view/info.phtml
+++ app/design/adminhtml/default/default/template/sales/order/totals/discount.phtml
+++ app/design/adminhtml/default/default/template/sales/items/renderer/default.phtml
+++ app/design/adminhtml/default/default/template/sales/items/column/name.phtml
+++ app/design/adminhtml/default/default/template/downloadable/sales/items/column/downloadable/name.phtml
+++ app/design/adminhtml/default/default/template/downloadable/sales/items/column/downloadable/invoice/name.phtml
+++ app/design/adminhtml/default/default/template/downloadable/sales/items/column/downloadable/creditmemo/name.phtml
+++ app/design/adminhtml/default/default/template/catalog/product/composite/fieldset/options/type/file.phtml
+++ app/design/adminhtml/default/default/template/bundle/sales/shipment/view/items/renderer.phtml
+++ app/design/adminhtml/default/default/template/bundle/sales/shipment/create/items/renderer.phtml
+++ app/design/adminhtml/default/default/template/bundle/sales/order/view/items/renderer.phtml
+++ app/design/adminhtml/default/default/template/bundle/sales/invoice/view/items/renderer.phtml
+++ app/design/adminhtml/default/default/template/bundle/sales/invoice/create/items/renderer.phtml
+++ app/design/adminhtml/default/default/template/bundle/sales/creditmemo/view/items/renderer.phtml
+++ app/design/adminhtml/default/default/template/bundle/sales/creditmemo/create/items/renderer.phtml
+++ app/design/adminhtml/default/default/template/authorizenet/directpost/iframe.phtml
코어 / 라이브러리 :
+++ lib/Varien/Io/File.php
+++ lib/Varien/File/Uploader.php
+++ app/code/core/Zend/Xml/Security.php
+++ app/code/core/Mage/Sales/Model/Quote/Item.php
+++ app/code/core/Mage/Sales/Model/Quote/Address.php
+++ app/code/core/Mage/Sales/Helper/Guest.php
+++ app/code/core/Mage/Rss/Helper/Order.php
+++ app/code/core/Mage/Rss/Block/Catalog/Salesrule.php
+++ app/code/core/Mage/Review/controllers/ProductController.php
+++ app/code/core/Mage/Paypal/controllers/PayflowadvancedController.php
+++ app/code/core/Mage/Paypal/controllers/PayflowController.php
+++ app/code/core/Mage/Newsletter/Model/Queue.php
+++ app/code/core/Mage/Newsletter/Model/Observer.php
+++ app/code/core/Mage/ImportExport/Model/Import/Entity/Abstract.php
+++ app/code/core/Mage/ImportExport/Model/Export/Adapter/Csv.php
+++ app/code/core/Mage/ImportExport/Model/Export/Adapter/Abstract.php
+++ app/code/core/Mage/Downloadable/controllers/CustomerController.php
+++ app/code/core/Mage/Dataflow/Model/Convert/Parser/Csv.php
+++ app/code/core/Mage/Customer/controllers/AccountController.php
+++ app/code/core/Mage/Core/Model/Session.php
+++ app/code/core/Mage/Core/Model/Input/Filter/MaliciousCode.php
+++ app/code/core/Mage/Core/Model/File/Validator/Image.php
+++ app/code/core/Mage/Core/Model/Email/Template/Filter.php
+++ app/code/core/Mage/Core/Model/Email/Queue.php
+++ app/code/core/Mage/Core/Model/Config.php
+++ app/code/core/Mage/Core/Model/App.php
+++ app/code/core/Mage/Core/Helper/Data.php
+++ app/code/core/Mage/Checkout/controllers/OnepageController.php
+++ app/code/core/Mage/Checkout/controllers/CartController.php
+++ app/code/core/Mage/Checkout/Block/Cart/Item/Renderer.php
+++ app/code/core/Mage/CatalogInventory/Helper/Minsaleqty.php
+++ app/code/core/Mage/Catalog/Model/Resource/Product/Attribute/Backend/Image.php
+++ app/code/core/Mage/Catalog/Model/Category/Attribute/Backend/Image.php
+++ app/code/core/Mage/Catalog/Block/Product/View/Options/Type/Select.php
+++ app/code/core/Mage/Authorizenet/controllers/Adminhtml/Authorizenet/Directpost/PaymentController.php
+++ app/code/core/Mage/Authorizenet/Helper/Data.php
+++ app/code/core/Mage/Authorizenet/Helper/Admin.php
+++ app/code/core/Mage/Adminhtml/controllers/IndexController.php
+++ app/code/core/Mage/Adminhtml/Model/System/Config/Backend/Image/Favicon.php
+++ app/code/core/Mage/Adminhtml/Model/System/Config/Backend/Image.php
+++ app/code/core/Mage/Adminhtml/Model/System/Config/Backend/File.php
+++ app/code/core/Mage/Adminhtml/Helper/Sales.php
+++ app/code/core/Mage/Adminhtml/Helper/Catalog/Product/Edit/Action/Attribute.php
+++ app/code/core/Mage/Adminhtml/Block/Widget/Grid.php
+++ app/code/core/Mage/Adminhtml/Block/Sales/Order/View/Tab/History.php
+++ app/code/core/Mage/Admin/Model/User.php
+++ app/code/core/Mage/Admin/Model/Resource/User.php
+++ app/code/core/Mage/Admin/Model/Redirectpolicy.php
+++ app/code/core/Mage/Admin/Model/Observer.php
===================================================== =====================
ps
모든 것을 함께 유지하기 위해, 다수의 마 젠토 설치로 많은 서버를 패치하기 위해 “두뇌없는”멀티 패치를 만들었습니다.
멀티 패치 -7405.sh
답변
기본 테스트 계획은 다음과 같습니다.
- 쿠폰 적용
- 관리자 로그인
- 관리자가 비밀번호를 변경하도록 강제
- CSV 내보내기
- CSV 가져 오기
- 관리자 및 고객으로 비밀번호 재설정
- 관리자에서 주문 작성
- 프런트 엔드에서 게스트로 생성 및 주문
- 프런트 엔드에서 고객으로 생성 및 주문
- 제품에 이미지 추가
- 대변 메모 작성
- 송장 작성
답변
Colin Mollenhour가 최근에 발견하고 수정 한 세션 삭제 문제에 유의하십시오 .
https://gist.github.com/colinmollenhour/5066a3220881a9c0c2dd42fa1593cbff/revisions