安全修补程序SUPEE-10570-可能的问题?


45

Magento发布了针对M1的新安全补丁,以及针对M1和M2的更新。

升级或应用此补丁时应注意哪些问题?

SUPEE-10570

SUPEE-10570,Magento Commerce 1.14.3.8和Open Source 1.9.3.8包含多项安全增强功能,可帮助关闭远程代码执行(RCE),跨站点脚本(XSS)和其他问题。发行说明。

MAGENTO 2.2.3、2.1.12和2.0.18安全更新

Magento Commerce和开源2.2.3、2.1.12和2.0.18包含多项安全增强功能,可帮助关闭跨站点脚本(XSS),经过身份验证的Admin用户远程执行代码(RCE)和其他漏洞。这些发行版包括其他功能修复程序。要查找有关功能修复的更多信息,请查看Magento Commerce 2.0.18、2.1.12、2.2.3和Magento Open Source 2.0.18、2.1.12、22.3的发行说明。


1
对于Open Source / Community Edition 1.x,似乎没有包含前端模板更改,因此至少不应造成太多麻烦。但是- 强烈建议您进行数据库备份,因为此修补程序中包含两个安装(升级)脚本。在修补完第一个环境后,可能会有更多详细信息。
Christoph Farnleitner,

1
如果您的商店使用包含商店名称的自定义adminhtml网格,则该修补程序现在可能会对其进行转义,以基于更改商店名称和呈现方式来修复某些潜在的漏洞。
Andrew Quackenbos

到目前为止,我已经在1.9.0.1上修补了2个站点,没有任何问题。
asdfasdfasf

1
到目前为止,我已经在1.9.3.0、1.9.0.1和1.9.1.0上应用了补丁程序
大卫,

2
这来自安全博客: magento.com/security/patches/supee-10570 注意:某些客户在尝试在结帐时创建帐户时在结帐时遇到问题。很快将提供更新补丁或解决此问题的解决方法。如果您现在遇到此问题,请考虑通过应用以下修补程序来还原导致该问题的代码部分:SUPEE-10570版本档案中的invalid_sesssion_fix.patch
The Tankgirl,

Answers:


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

编辑

最终,在我的产品网站(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行处,Mage_Core_Model_Session_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)”)。


编辑(4)在报告最初的阻止问题后约1个月

嗨!希望你们都是商品(并希望直到现在才保持最初的补丁状态,除非您的营业收入可能严重下降了^^)。

我注意到官方页面上的以下句子:“ 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

PS:显然其他一些文件也已修改,请相应检查。


1
@Icon:我刚刚将此错误报告给了magento。收到官方反馈后,我将发布答案。
DarkCowboy

4
@Icon / Soleil:不幸的是,关于我的错误修正请求,仍然没有官方的答案或修正。
DarkCowboy

1
@DarkCowboy我刚刚注意到,一旦转到补丁下载页面,您会看到Magento团队在1.7.0.0和1.7.0.2补丁中添加了注释。好像有新补丁发布。
图标

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标记的产品,则Magento会在数据验证阶段(即,当您单击Check data时)显示此错误:
 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.php,则可能意味着您的Magento安装之前已使用SUPEE-9652v1而非SUPEE-9652v2进行了修补。推荐的解决方案是在应用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中的相同文件进行比较,我发现用于验证会话到期和密码时间戳记的新块的顺序不同。

Magento 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;
    }

Magento 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的结果代码-第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。(同一文件中只有一行更改)
埃里克·海斯特兰德'18

你好 我们已经评估,更改后的验证顺序仍然存在“用空购物车重定向”问题。我们关闭了“ useValidateSessionPasswordTimestamp”检查,直到magento创建一个更新。
史蒂文·弗里茨彻

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;

重新编译后问题就消失了。还有其他人遇到这个问题吗?

这里用德语解释。


这是通过许多不同的方式在这里见过的一些最差的建议和代码。请不要在家中做任何事情。
乒乓球

与我完全一样。此修补程序无法在启用编译器的情况下使用。
拉斐尔·帕特罗

在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开始在所有香草Magento版本上测试了SUPEE-10570,并且一切正常。但前提是您已应用所有以前的补丁程序。在这里,你可以看一下需要哪些补丁:docs.google.com/spreadsheets/d/...
吉荣默朗- 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';到文件的顶部对此补丁进行了修补,就像该修补程序的大多数其他版本一样。
泰勒五世

是的,似乎是针对1.7.0.0补丁的
danmentzer

泰勒(Tyler)可以将修补程序添加到实际答案中,而不是在注释部分中添加。
danmentzer

1
我还要注意,这也会影响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 '18 -4-2

检查此文件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

我的magento版本是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.自动重定向到主页。您看不到订单号确认。但实际上,下订单并创建客户帐户。


您对此有任何解决方案吗?我正面临着同样的问题。
Parth Thummar

1
补丁的V2出来了,问题就解决了
图标

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-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上进行检查,并确认所有补丁均已安装。9767。
罗伊·托莱多

我会检查并提供ANS
拉马赞德兰中号

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最终用户许可协议”。此问题已更正为“开放软件许可(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修补程序。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.