보안 패치 SUPEE-7405-가능한 문제? https://magento.com/security/patches/supee-7405 마지막 패치에

패치 일이 또 남았습니다. 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
  • 양식 키 유효성 검사프론트 엔드 카트 삭제 조치 에 추가되었습니다 . 폼 키에 추가 getDeleteUrlMage_Checkout_Block_Cart_Item_Renderer상기 검증에서 deleteActionMage_Checkout_CartController.
  • 이벤트는 이제 모든 소문자로 전달됩니다 (영향을받는 모든 구성 파일이 수정 controller_action_postdispatch_checkout_onepage_saveOrdercontroller_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/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에 관하여 :

마 젠토 패치에 대한 좋은 자료

내가 놓친 부분이 있으면 언제든지 알려주세요.


답변

내가 주목 한 한 가지 문제는 사이트에서 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