보안 패치 SUPEE-10570-가능한 문제?


45

Magento는 M1에 대한 새로운 보안 패치와 M1 및 M2에 대한 업데이트를 발표했습니다.

이 패치를 업그레이드하거나 적용 할 때 어떤 문제를주의해야합니까?

수프 -10570

SUPEE-10570, Magento Commerce 1.14.3.8 및 오픈 소스 1.9.3.8에는 원격 코드 실행 (RCE), 사이트 간 스크립팅 (XSS) 및 기타 문제를 해결하는 데 도움이되는 여러 가지 향상된 보안 기능이 포함되어 있습니다. 릴리즈 노트.

MAGENTO 2.2.3, 2.1.12 및 2.0.18 보안 업데이트

Magento Commerce 및 Open Source 2.2.3, 2.1.12 및 2.0.18에는 XSS (Cross-Site Scripting), 인증 된 관리 사용자 원격 코드 실행 (RCE) 및 기타 취약점을 해결하는 데 도움이되는 여러 가지 향상된 보안 기능이 포함되어 있습니다. 릴리스에는 추가 기능 수정 사항이 포함되어 있습니다. 기능 수정에 대한 자세한 내용은 Magento Commerce 2.0.18, 2.1.12, 2.2.3 및 Magento Open Source 2.0.18, 2.1.12, 2.2.3 릴리스 정보를 확인하십시오.


1
오픈 소스 / 커뮤니티 에디션 1.x의 경우 프런트 엔드 템플릿 변경 사항이 포함 되지 않은 것 같으므로 최소한 문제가 발생하지 않아야합니다. 그러나이 패치에는 두 개의 설치 (업그레이드) 스크립트가 포함되어 있으므로 데이터베이스 백업을 적극 권장 합니다. 첫 번째 환경을 패치 한 후에 자세한 내용을 확인할 수 있습니다.
Christoph Farnleitner

1
상점 이름이 포함 된 사용자 정의 된 관리 HTML 그리드를 사용하는 상점이있는 경우, 패치는 이제 상점 이름 변경 및 렌더링을 기반으로 잠재적 인 악용을 수정하기 위해 패치를 이스케이프 처리합니다.
Andrew Quackenbos

지금까지 1.9.0.1에 2 개의 사이트를 문제없이 패치했습니다.
asdfasdfasf

1
지금까지 아무런 문제가없는 1.9.3.0, 1.9.0.1 및 1.9.1.0에 패치를 적용했습니다
David

2
참고 : magento.com/security/patches/supee-10570 보안 블로그에 있습니다. 참고 : 일부 고객은 체크 아웃하는 동안 계정을 만들려고 할 때 체크 아웃하는 데 문제가 있습니다. 이 문제를 해결하기위한 업데이트 패치 또는 해결 방법이 곧 제공 될 예정입니다. 지금이 문제가 발생하면 다음 패치를 적용하여이 문제를 일으키는 코드 부분을 되돌려보십시오. SUPEE-10570 섹션
The Tankgirl

답변:


29

다음은 SUPEE-10570 패치로 수정 된 파일 목록입니다.

app/Mage.php 
app/code/core/Mage/Admin/Helper/Data.php
app/code/core/Mage/Admin/Model/Block.php 
app/code/core/Mage/Admin/Model/Resource/Block.php 
app/code/core/Mage/Admin/Model/User.php 
app/code/core/Mage/Adminhtml/Block/Catalog/Category/Edit/Form.php 
app/code/core/Mage/Adminhtml/Block/Catalog/Product/Grid.php 
app/code/core/Mage/Adminhtml/Block/Newsletter/Template/Grid/Renderer/Sender.php 
app/code/core/Mage/Adminhtml/Block/Sales/Order/Grid.php 
app/code/core/Mage/Adminhtml/Block/Sales/Order/View/Info.php 
app/code/core/Mage/Adminhtml/Block/System/Store/Edit/Form.php 
app/code/core/Mage/Adminhtml/Block/Tag/Assigned/Grid.php 
app/code/core/Mage/Adminhtml/Block/Widget/Grid/Column/Renderer/Store.php 
app/code/core/Mage/Adminhtml/Block/Widget/Tabs.php 
app/code/core/Mage/Adminhtml/Model/Config/Data.php 
app/code/core/Mage/Adminhtml/Model/System/Store.php 
app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php 
app/code/core/Mage/Adminhtml/controllers/CustomerController.php 
app/code/core/Mage/Adminhtml/controllers/System/BackupController.php
app/code/core/Mage/Core/Model/Session/Abstract/Varien.php
app/code/core/Mage/Core/Model/Variable.php
app/code/core/Mage/Customer/Helper/Data.php
app/code/core/Mage/Customer/Model/Resource/Customer.php
app/code/core/Mage/Customer/controllers/AccountController.php
app/code/core/Mage/Customer/etc/config.xml
app/code/core/Mage/Customer/sql/customer_setup/upgrade-1.6.2.0.1.1.1-1.6.2.0.1.1.2.php
app/code/core/Mage/Downloadable/etc/config.xml
app/code/core/Mage/Downloadable/etc/system.xml
app/code/core/Mage/Downloadable/sql/downloadable_setup/upgrade-1.6.0.0.2.1.1-1.6.0.0.2.1.2.php
app/code/core/Mage/ImportExport/Model/Import.php
app/code/core/Mage/ImportExport/Model/Import/Entity/Product.php
app/code/core/Mage/Shipping/Model/Info.php
app/code/core/Mage/Widget/controllers/Adminhtml/Widget/InstanceController.php
app/design/adminhtml/default/default/template/catalog/product/attribute/set/main.phtml
app/design/adminhtml/default/default/template/customer/tab/view.phtml
app/design/adminhtml/default/default/template/customer/tab/view/sales.phtml
app/design/adminhtml/default/default/template/dashboard/store/switcher.phtml
app/design/adminhtml/default/default/template/downloadable/product/composite/fieldset/downloadable.phtml
app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable/links.phtml
app/design/adminhtml/default/default/template/downloadable/sales/items/column/downloadable/creditmemo/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/name.phtml
app/design/adminhtml/default/default/template/newsletter/preview/store.phtml
app/design/adminhtml/default/default/template/report/store/switcher.phtml
app/design/adminhtml/default/default/template/sales/order/view/info.phtml
app/design/adminhtml/default/default/template/store/switcher.phtml
app/design/adminhtml/default/default/template/store/switcher/enhanced.phtml
app/design/adminhtml/default/default/template/system/convert/profile/wizard.phtml
app/design/adminhtml/default/default/template/tax/rate/title.phtml
app/design/adminhtml/default/default/template/widget/form/renderer/fieldset.phtml
app/locale/en_US/Mage_Catalog.csv
app/locale/en_US/Mage_ImportExport.csv
lib/Zend/Mail/Transport/Sendmail.php

편집하다

마지막으로 prod 웹 사이트 (CE 1.7.0.2)에 배포 한 후 중요한 차단 문제 (체크 아웃 프로세스가 차단됨)를 발견했습니다.

컨텍스트 : 1 단계 주소 후에 고객을 직접 생성하고 기록하면 다음 체크 아웃 단계 만보아야합니다.

문제 : supee-10570 이후 1 단계 (계좌 생성의 경우) 후에 결제 프로세스가 중단되고 고객이 장바구니로 비우고 로그 아웃 된 상태로 홈페이지로 리디렉션됩니다.

긴급 수정 : 체크 아웃 / 고객 세션과 유사한 문제가 발생하는 경우 app / code / core / Mage / Core / Model / Session / Abstract / Varien.php (패치에 의해 추가 된 것)에서 414-430 행을 주석 처리하십시오. 아래 참조).

//         if ($this->useValidateSessionPasswordTimestamp()
//             && isset($validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP])
//             && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
//             && $validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP]
//             > $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] - $this->getCookie()->getLifetime()
//         ) {
//             return false;
//         }

//         if ($this->useValidateSessionExpire()
//             && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
//             && $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] < time() ) {
//             return false;
//         } else {
//             $this->_data[self::VALIDATOR_KEY][self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP]
//                 = $validatorData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP];
//         }

편집 (2)

다음 조건은 항상 false를 반환한다고 생각합니다 (414-419 줄, 특히 417 + 418 줄의 마법사 _ 코어 _ 모델 _ 세션 _Abstract_Varien).

if ($this->useValidateSessionPasswordTimestamp()
            && isset($validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP])
            && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
            && $validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP]
            > $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] - $this->getCookie()->getLifetime()
        ) {
        return false;

VALIDATOR_PASSWORD_CREATE_TIMESTAMP는 항상 VALIDATOR_SESSION_EXPIRE_TIMESTAMP보다 큽니다. 세션 "만료"타임 스탬프는 계정을 만들 때 재정의되므로 세션 초기화보다 필연적으로 오래되었습니다.

예를 들어 결제 중에 고객을 생성하면 false가 반환되고 고객이 방금 쫓겨납니다 (= 결제 종료, 홈페이지로 리디렉션 및 장바구니 비우기). 꽤 나쁘다.

이 문제를 magento 팀에보고했습니다. 최대한 빨리 의견을 보내 드리겠습니다.


편집 (3)

새로운 패치는 wip입니다 (magento 패치 다운로드 페이지에 "SUPEE-10570 for CE 1.7.0.0-업데이트 된 패치가 예상되었으며 사용하지 마십시오 (0.06 MB)").


최초 차단 문제보고 후 1 개월 ~ EDIT

안녕하세요! 모든 상품이되기를 바랍니다. 사업 수입이 크게 줄어들지 않는 한 지금까지 초기 패치 상태를 유지하지 않았기를 바랍니다.

공식 페이지에서 다음과 같은 문장을 보았습니다. "Magento는 더 이상이 문제를 일으키지 않는 업데이트 된 패치 (SUPEE-10570v2)를 제공하고 있습니다. 그러나이 새로운 패치는 더 이상 두 가지 위험이 낮은 세션 처리 관련 문제를 방지하지 않습니다. SUPEE-10570을 보호하는 보안 문제. " supee-10570 공식 페이지에서.

릴리스 페이지에서 마지막으로 v2 파일 (PATCH_SUPEE-10570_CE_v1.7.0.2_v2-2018-03-29-08-52-37.sh)을 찾을 수 있습니다.

수정 사항을 자세히 조사했습니다. 마지막으로 magento 팀은 패치의 보안 부분을 삭제하기로 결정한 것 같습니다. 이 보안 허점이 심각한 피해를 초래하지 않기를 바랍니다 (공식 참고 사항에 따르면 중요도가 낮음).

v1을 되돌리고 v2를 적용한 후 다음 파일이 초기 상태 (v1이 적용되기 전)로 되돌려집니다.

app/code/core/Mage/Adminhtml/controllers/CustomerController.php
app/code/core/Mage/Customer/controllers/AccountController.php
app/code/core/Mage/Customer/Helper/Data.php
app/code/core/Mage/Customer/Model/Resource/Customer.php

추신 : 분명히 다른 파일도 수정되었습니다. 따라서 확인하십시오.


1
@ 아이콘 : 방금이 버그를 magento 에보 고했습니다. 공식적인 피드백을받는 즉시 답변을 게시하겠습니다.
DarkCowboy

4
@Icon / Soleil : 불행히도 내 버그 수정 요청과 관련하여 공식적인 답변이나 수정은 없습니다.
DarkCowboy

1
@DarkCowboy 방금 패치 다운로드 페이지로 이동하면 Magento 팀이 1.7.0.0 및 1.7.0.2 패치에 메모를 추가 한 것을 알 수 있습니다. 새로운 패치가 온 것 같습니다.
Icon

3
여러분 안녕하세요. 새로운 패치가 추가 된 것을 보았습니다 ( "PATCH_SUPEE-10570_CE_v1.7.0.2_v1-2018-02-28-04-54-53.sh"). 차이점은 여기에서 볼 수 있습니다 (왼쪽 창은 첫 번째 패치 "PATCH_SUPEE-10570_CE_v1.7.0.2_v1-2018-02-23-06-28-18.sh") : diffchecker.com/uGON91aR . 새 패치에 대한 수정이 없습니까?! 또한 "... 업데이트 된 패치가 예상되었습니다. 사용하지 마십시오"라는 알림이 사라졌습니다. 그래서 나는 magento 핵심 팀 이이 문제와 관련하여 약간 혼란 스럽습니다.
DarkCowboy

1
참고로 패치의 V2는app/etc/applied.patches.list
Moose

9

(이것이 처음부터 릴리스 노트 에 있는지 확실하지 않음 )

알려진 문제

이 두 가지 알려진 문제는 제품의 SKU 속성 내에서 HTML 태그 사용과 관련이 있습니다.

  • 당신이 SKU 속성에 HTML 태그를 포함 수입 제품에하려고하면, 마 젠토는 데이터 유효성 검사 단계에서이 오류를 표시합니다 (즉, 사용자가 클릭하면 확인 데이터 ) :
 Invalid value in SKU column. HTML tags are not allowed.
  • 관리자 패널에서 제품을 만들거나 편집하려고 할 때 제품의 SKU 속성 값에 HTML 태그가 포함되어 있으면 제품을 저장하려고하면 Magento에서이 오류가 발생합니다. HTML tags are not allowed in SKU attribute.

에서 패치 노트 :

패치하는 동안 패치가 적용되지 않으면 lib/Zend/Mail/Transport/Sendmail.phpMagento 설치가 이전에 SUPEE-9652v2 대신 SUPEE-9652v1로 패치되었음을 의미 할 수 있습니다. 권장되는 솔루션은 SUPEE-10570을 적용하기 전에 패치 SUPEE-9652v1을 되돌리고 SUPEE-9652v2를 적용하는 것입니다.


7

패치를 Magento CE 1.7.0.2에 적용한 후 @DarkCowboy와 같은 문제가있었습니다.

결제 중에 새 고객으로 등록하기로 선택한 후 주문을하면 주문과 고객이 모두 생성되지만 주문 성공 페이지를 표시하는 대신 홈페이지로 리디렉션되어 로그 아웃됩니다.

내가 찾은 해결책은 코드 블록의 순서를로 변경하는 것 app/code/core/Mage/Core/Model/Session/Abstract/Varien.php입니다.

패치 된 버전과 Magento CE 1.9.3.8의 동일한 파일을 비교할 때 세션 만료 및 비밀번호 타임 스탬프의 유효성을 검사하는 새로운 블록의 순서가 다릅니다.

마 젠토 CE 1.9.3.8- 라인 476-491 :

    if ($this->useValidateSessionExpire()
        && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
        && $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] < time() ) {
        return false;
    } else {
        $this->_data[self::VALIDATOR_KEY][self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP]
            = $validatorData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP];
    }
    if ($this->useValidateSessionPasswordTimestamp()
        && isset($validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP])
        && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
        && $validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP]
        > $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] - $this->getCookie()->getLifetime()
    ) {
        return false;
    }

마 젠토 CE 1.7.0.2- 라인 414-430 :

    if ($this->useValidateSessionPasswordTimestamp()
        && isset($validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP])
        && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
        && $validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP]
        > $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] - $this->getCookie()->getLifetime()
    ) {
        return false;
    }

    if ($this->useValidateSessionExpire()
        && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
        && $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] < time() ) {
        return false;
    } else {
        $this->_data[self::VALIDATOR_KEY][self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP]
            = $validatorData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP];
    }

그 결과 값 $validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP]이보다 큽니다 $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] - $this->getCookie()->getLifetime(). 즉, 메소드는 항상 false를 리턴하고 유효성 검증에 실패합니다.

Magento CE 1.7.0.2의 코드를 Magento CE 1.9.3.8의 버전과 일치하도록 변경하면 문제가 해결됩니다.

Magento CE 1.7.0.2-Lines 414-430의 결과 코드 :


    if ($this->useValidateSessionExpire()
        && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
        && $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] < time() ) {
        return false;
    } else {
        $this->_data[self::VALIDATOR_KEY][self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP]
            = $validatorData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP];
    }
    if ($this->useValidateSessionPasswordTimestamp()
        && isset($validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP])
        && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
        && $validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP]
        > $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] - $this->getCookie()->getLifetime()
    ) {
        return false;
    }

나는 자신의 패치 파일을 만들고 코어 파일에 직접 적용하는 것이 좋습니다 (이것은 일반적으로 코어의 버그 수정에 접근하는 방법입니다). 이렇게하면 Magento가 버전 2의 패치를 발행하면 쉽게 되돌릴 수 있습니다.


안녕 데이브. 나와 같은 문제가 발생한 것 같습니다. 수정과 관련하여 반전과 함께 두 번째 조건은 전혀 테스트되지 않습니다 ...이 세션 데이터를 조사하겠습니다.
DarkCowboy

4
3 월 중순 예상 1.7.0.2 업데이트 (패치 v2) 문제가 확인되었습니다.
Piotr Kaminski

이 솔루션이 실제로 암호 변경 타임 스탬프 확인을 계속 유지하는지 또는 패치하려고하는 보안 허점을 다시 여는 지 테스트 한 사람이 있습니까? 참고 : 보안상의 이점에 신경 쓰지 않으면 useValidateSessionPasswordTimestamp()return을 사용하여 비밀번호 변경 타임 스탬프 검사를 비활성화 할 수 있습니다 false. (같은 파일에서 한 줄 변경)
Eric Seastrand

안녕하세요. 유효성 검사 순서가 변경된 "빈 카트로 리디렉션"문제가 여전히 존재한다고 평가했습니다. magento가 업데이트를 생성 할 때까지 "useValidateSessionPasswordTimestamp"검사를 해제했습니다.
Steven Fritzsche

6

SUPEE-10570을 적용하고 컴파일 한 후 / checkout / cart에서 빈 페이지를 보았습니다. 명확히하기 위해 : 비활성화 된 컴파일러를 사용하면 모든 것이 잘되었습니다. 활성화 된 컴파일러를 사용하면 로그 항목없이 로그인 할 때 빈 카트 페이지 만 볼 수 있습니다 (모든 가능한 로그 및 개발자 모드를 활성화 한 후에도).

이 솔루션은 기능을 변경하는 것이었다 getPasswordTimestamp()app/code/core/Mage/Customer/Helper/Data.php(물론 수단 app/code/local/Mage/Customer/Helper/Data.php과 사용!)을 Mage::getSingleton('core/resource')대신 Mage::getModel('customer/customer')하거나 Mage::getSingleton('customer/session'). 따라서 전체 기능을 예를 들어 다음 코드 줄로 바꿉니다.

    $resource = Mage::getSingleton('core/resource');
    $readConnection = $resource->getConnection('core_read');
    $query = 'SELECT * FROM ' . $resource->getTableName('customer_entity').' WHERE `entity_id` = '.$customerId;
    $results = $readConnection->fetchAll($query);
    $result=$results[0];
    $date_created = Varien_Date::toTimestamp($result['created_at']);
    return $date_created;

재 컴파일 후 문제가 사라졌습니다. 이 문제가있는 다른 사람이 있습니까?

독일어 설명이 여기에 있습니다 .


이것은 여러 가지 방법으로 여기에서 본 최악의 조언과 코드 중 일부입니다. 집에서이 작업을 수행하지 마십시오.
pong

나와 정확히 동일합니다. 이 패치는 컴파일러가 활성화 된 상태에서 작동하지 않습니다.
Rafael Patro

1.9.3.9에서는 나에게 잘 작동합니다.
TonkBerlin

4

1.7.0.0

반점: PATCH_SUPEE-10570_CE_v1.7.0.0_v1-2018-02-23-06-37-58.sh

이전에 SUPEE-9652 또는 SUPEE-9767을 적용하지 않은 경우이 오류가 발생합니다.

patching file lib/Zend/Mail/Transport/Sendmail.php
Hunk #1 FAILED at 119.
Hunk #2 FAILED at 130.

해당 패치를 적용하여 문제를 해결하십시오.


2
9652 및 9767이 설치되어 있는지 확인하십시오.
Icon

실제로 1.6.0.0부터 모든 바닐라 마 젠토 버전에서 SUPEE-10570을 테스트했으며 모두 작동합니다. 그러나 이전의 모든 패치를 적용한 경우에만 해당됩니다. 여기에서 필요한 패치를 찾을 수 있습니다. docs.google.com/spreadsheets/d/…
Jeroen Vermeulen-MageHost

4

1.7.0.0

패치 PATCH_SUPEE-10570_CE_v1.7.0.0_v1-2018-02-23-06-37-58.sh 파일app/code/core/Mage/Core/Model/Session/Abstract/Varien.php

1.7.0.0 패치는 하나의 상수 만 추가합니다.

+    const VALIDATOR_PASSWORD_CREATE_TIMESTAMP   = 'password_create_timestamp';

그러나 두 가지 새로운 상수, 특히이 상수를 사용합니다.

+        if ($this->useValidateSessionPasswordTimestamp()
+            && isset($validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP])
+            && isset($sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP])
+            && $validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP]
+            > $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] - $this->getCookie()->getLifetime()
+        ) {
+            return false;
+        }

이로 인해 오류가 발생합니다.

PHP Fatal error:  Uncaught Error: Undefined class constant 'VALIDATOR_SESSION_EXPIRE_TIMESTAMP' in 
app/code/core/Mage/Core/Model/Session/Abstract/Varien.php:406
Stack trace:
#0 
app/code/core/Mage/Core/Model/Session/Abstract/Varien.php(358): Mage_Core_Model_Session_Abstract_Varien->_validate()
#1 
app/code/core/Mage/Core/Model/Session/Abstract/Varien.php(176): Mage_Core_Model_Session_Abstract_Varien->validate()
#2 
app/code/core/Mage/Core/Model/Session/Abstract.php(84): Mage_Core_Model_Session_Abstract_Varien->init('core', 'frontend')
#3 
app/code/core/Mage/Core/Model/Session.php(42): Mage_Core_Model_Session_Abstract->init('core', 'frontend')
#4 
app/code/core/Mage/Core/Model/Config.php(1354): Mage_Core_Model_Session->__construct(Array)

수정 :

이 패치에 의해 추가 된 첫 번째 상수 위 또는 아래에이 두 번째 상수에 대한 정의를 추가하십시오.

const VALIDATOR_SESSION_EXPIRE_TIMESTAMP = 'session_expire_timestamp';

지금까지 1.9에서이 문제를 보지 못했습니다. 또는 상수를 올바르게 정의하기 때문에 1.14.x 패치.


이것은이 패치의 const VALIDATOR_SESSION_EXPIRE_TIMESTAMP = 'session_expire_timestamp';다른 대부분의 버전에서와 같이 파일 맨 위에 추가 하여 패치되었습니다.
Tyler V.

네는 1.7.0.0 패치와 관련된 것으로 보인다
danmentzer

Tyler는 의견 섹션이 아닌 실제 답변에 수정 사항을 추가 할 수 있습니다.
danmentzer

1
또한 이것은 EE 버전의 EE 버전에도 적용됩니다. EE 1.12.0.0
danmentzer

3

먼저 올바른 버전의 SUPEE-6788 또는 SUPEE-7405를 적용했는지 확인하고 잘못된 버전을 되 돌리지 않은 경우 올바른 버전의 SUPEE-6788 / SUPEE-7405를 적용하십시오.

그런 다음 SUPEE-10570을 다시 적용하십시오.


2

아래 파일은 EE 패치 SUPEE-10570을 적용한 후 업데이트 / 추가됩니다

@DarkCowboy는 EE 파일 이외의 파일 목록을 제공했습니다 .

    app/code/core/Enterprise/Cms/Block/Adminhtml/Cms/Hierarchy/Edit/Form.php
    app/code/core/Enterprise/Cms/Block/Adminhtml/Cms/Hierarchy/Widget/Chooser.php
    app/code/core/Enterprise/Cms/Block/Adminhtml/Cms/Page/Edit/Tab/Hierarchy.php
    app/code/core/Enterprise/Cms/Block/Hierarchy/Menu.php
    app/code/core/Enterprise/Customer/Block/Adminhtml/Customer/Attribute/Edit/Tab/Main.php
    app/code/core/Enterprise/GiftRegistry/Model/Observer.php
    app/code/core/Enterprise/Reward/Block/Adminhtml/Customer/Edit/Tab/Reward/Management/Update.php
    app/code/core/Enterprise/Rma/Model/Shipping/Info.php
    app/code/core/Enterprise/Staging/Block/Adminhtml/Backup/Grid.php
    app/code/core/Enterprise/Staging/Block/Adminhtml/Staging/Grid.php
 app/design/adminhtml/default/default/template/enterprise/cms/hierarchy/edit.phtml
    app/design/adminhtml/default/default/template/enterprise/cms/hierarchy/manage.phtml
    app/design/adminhtml/default/default/template/enterprise/cms/hierarchy/scope/switcher.phtml
    app/design/adminhtml/default/default/template/enterprise/cms/hierarchy/widget/radio.phtml
    app/design/adminhtml/default/default/template/enterprise/cms/page/preview/store.phtml
    app/design/adminhtml/default/default/template/enterprise/customer/website/switcher.phtml
    app/design/adminhtml/default/default/template/enterprise/invitation/view/tab/general.phtml
    app/design/adminhtml/default/default/template/enterprise/staging/log/information/create.phtml
    app/design/adminhtml/default/default/template/enterprise/staging/staging/edit/tabs/website.phtml
    app/design/adminhtml/default/default/template/enterprise/staging/staging/edit/tabs/website/store.phtml
    app/design/adminhtml/default/default/template/enterprise/staging/staging/merge/settings/website.phtml
    app/design/adminhtml/default/default/template/enterprise/store/switcher.phtml
    app/design/adminhtml/default/default/template/enterprise/store/switcher/enhanced.phtml
    app/design/adminhtml/default/default/template/merchandiser/new/page/html/top-buttons.phtml
    app/design/frontend/enterprise/default/template/cms/hierarchy/pagination.phtml

중요한 참고 사항

password_created_at 고객 속성 테이블에서 작성됩니다.

app/code/core/Mage/Adminhtml/controllers/CustomerController.php
app/code/core/Mage/Core/Model/Session/Abstract/Varien.php
app/code/core/Mage/Customer/Helper/Data.php
app/code/core/Mage/Customer/Model/Resource/Customer.php
app/code/core/Mage/Customer/controllers/AccountController.php
app/code/core/Mage/Customer/sql/customer_setup/upgrade-1.6.2.0.5.1.1-1.6.2.0.5.1.2.php

위의 파일은 작성 및 유효성 검증에 사용됩니다. 세션 문제는 체크 아웃 또는 사용자 로그인 확인시 발생합니다. 위의 파일 중 하나가 로컬 풀에서 덮어 쓰거나 모든 password_created_at속성이 고객 속성 테이블에 작성되고 해당 값이 해당 테이블에 저장됩니다.


문제가있는 CE 데이터베이스에서 password_created_at를 찾을 수 없습니다.
TonkBerlin

이 파일을 확인하십시오 app / code / core / Mage / Customer / sql / customer_setup / upgrade-1.6.2.0.5.1.1-1.6.2.0.5.1.2.php
Rama Chandran M

2

내 마 젠토 버전은 ver입니다. 1.9.1.0.

SUPEE-10570을 적용하고 컴파일 한 후 / checkout / cart에서 빈 페이지를 보았습니다. 명확히하기 위해 : 비활성화 된 컴파일러를 사용하면 모든 것이 잘되었습니다. 활성화 된 컴파일러 를 사용하면 로그 항목없이 로그인 할 때 빈 카트 페이지 만 볼 수 있습니다 (모든 가능한 로그 및 개발자 모드를 활성화 한 후에도).

원인:

  1. getPasswordTimestamp 함수는 로그인 시 / checkout / cart를 두 번 호출 합니다.

  2. 컴파일러 모두 호출 작업을 비활성화했습니다.

  3. 첫 번째 호출 작업 만 컴파일러를 활성화하고 두 번째 호출이 실패했습니다.

누구나 좋은 해결책을 설명하고 줄 수 있습니까?


2

1.7.0.2 와 관련된 문제 는 다음과 같습니다.

  1. 장바구니에 제품을 추가하고 결제로 이동

  2. "등록"을 클릭하십시오

  3. 결제 세부 정보 등 필요한 모든 주문 정보를 입력합니다.
  4. 주문 완료를 클릭하십시오.

문제가 여기에서 시작됩니다

5. 자동으로 HOME PAGE로 리디렉션됩니다. 주문 번호 확인이 표시되지 않습니다. 그러나 실제로 주문이 이루어지고 고객 계정이 생성됩니다.


이것에 대한 해결책을 찾으셨습니까? 나는 같은 문제에 직면하고있다.
Parth Thummar

1
패치 V2가 나오고 문제가 해결되었습니다.
Icon

2

동일한 문제가 발생했습니다. Magento 1.9.3.8은이 방법을 Mage_Customer_Helper_Data 클래스에 추가했습니다.

/**
 * Get customer password creation timestamp or customer account creation timestamp
 *
 * @param $customerId
 * @return int
 */
public function getPasswordTimestamp($customerId)
{
    /** @var $customer Mage_Customer_Model_Customer */
    $customer = Mage::getModel('customer/customer')
        ->setWebsiteId(Mage::app()->getStore()->getWebsiteId())
        ->load((int)$customerId);
    $passwordCreatedAt = $customer->getPasswordCreatedAt();

    return is_null($passwordCreatedAt) ? $customer->getCreatedAtTimestamp() : $passwordCreatedAt;
}

모범 사례가 아닌 로컬 폴더 내부에서이 클래스를 무시하면이 클래스에서 오류가 생성 될 수 있습니다.


2

이 패치는 EE 사용자를위한 일부 CMS 계층 관리자를 손상 시켰습니다.

이는 상점 / 웹 사이트 이름을 이탈하고 APPSEC-1873 / 1979 / 1980을 수정하는 다음 패치 라인 때문입니다.

diff --git app/design/adminhtml/default/default/template/enterprise/cms/hierarchy/manage.phtml app/design/adminhtml/default/default/template/enterprise/cms/hierarchy/manage.phtml
index e45298c..8bee617 100644
--- app/design/adminhtml/default/default/template/enterprise/cms/hierarchy/manage.phtml
+++ app/design/adminhtml/default/default/template/enterprise/cms/hierarchy/manage.phtml
@@ -36,7 +36,7 @@
             <div class="cms-popup-description"></div>
             <div class="fieldset">
                 <div class="cms-hierarchy manage-form">
-                    <?php echo $this->getFormHtml() ?>
+                    <?php echo $this->escapeHtml($this->getFormHtml()); ?>
                 </div>
             </div>
         </div>

왼쪽에는 상점 선택기가 표시되지만 오른쪽에는 HTML이 표시됩니다. 이 기능이 실제로 필요한 경우 보안 대 기능을 호출해야합니다.

깨진 계층 구조 표시


0

Magento 1.9.2.4 패치 PATCH_SUPEE-10570_CE_v1.9.2.4_v1-2018-02-28-04-53-53.sh에서 Tyler와 동일한 오류

checking file lib/Zend/Mail/Transport/Sendmail.php
Hunk #1 FAILED at 119.
Hunk #2 FAILED at 129.
2 out of 2 hunks FAILED

이전 패치를 설치했는지 확인하십시오. 9767 패치
Rama Chandran M

www.magereport.com에서 확인한 결과 모든 패치가 설치되어 있음을 확인했습니다.
Roy Toledo

내가 확인하고 제공합니다
Rama Chandran M

1
@royToledo SUPEE-9652 패치를 적용했는지 확인하십시오
Tyler V.

0

일부 패치 검색 도구가 있다면 당신은 아마의 검출 수정해야 SUPEE-9562 하기 때문에 SUPEE-10570수정 같은 파일을 :

lib/Zend/Mail/Transport/Sendmail.php

0

패치는 Magento에 의해 자동으로 변경되었습니다. 여기에 Magento 1.8.1.0-1.9.0.1 용 패치가 표시되어 있습니다. 처음 다운로드 할 때 파일이 생겼습니다

PATCH_SUPEE-10570_CE_v1.9.0.1_v1-2018-02-23-06-18-06.sh

며칠 후 나는 파일을 다음과 같이 얻었다.

PATCH_SUPEE-10570_CE_v1.9.0.1_v1-2018-02-28-04-54-29.sh

Diff는 이전 파일에 잘못된 라이센스 "Magento Enterprise Edition 최종 사용자 라이센스 계약"이 포함 된 Magento Enterprise Edition의 파일이 포함되어 있음을 보여줍니다. "Open Software License (OSL 3.0)"로 수정되었습니다.


0

다음과 같은 오류가 발생할 수 있습니다

Hunk #3 FAILED at 17 라인 후

checking file app/code/core/Enterprise/Cms/Block/Adminhtml/Cms/Page/Edit/Tab/Hierarchy.php

Magento 1.10.0.2EE 버전에서 발생했습니다. SUPEE-6285 패치가 적용되지 않았기 때문에 발생했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.