新补丁supee-6788如何申请补丁


29

经过数周的等待,今天(2015年10月27日)发布了该补丁:SUPEE-6788

已修补了许多内容,并鼓励检查已安装的模块是否存在漏洞。

我打开这篇文章是为了获得有关如何应用补丁的一些见解。申请补丁的步骤是什么?据我了解,这是步骤:

  1. 使用不在管理URL下的管理功能修复模块
  2. 修复将SQL语句用作字段名称或转义字段的模块
  3. 白名单块或指令使用像{{config path=”web/unsecure/base_url”}}和这样的变量{{bloc type=rss/order_new}}
  4. 使用自定义选项文件类型解决潜在的利用漏洞(不知道如何执行此操作)
  5. 应用补丁

这是正确的程序吗?


1
当前列出的CE版本1.7.0.0至1.9.2.0
Fiasco Labs

5
该补丁的变化.htaccess.sample以及.htaccess。后者是在大多数商店中定制的,这会使补丁程序失败=>您需要使用Magento的原始文件临时替换它,应用补丁程序,还原自己的.htaccess并应用更改来保护cron.php手动访问(请勿当然要使用生产系统!)
Fabian Schmengler 2015年

1
那使用nginx的人呢?
lloiacono

4
我投票结束这个问题是因为没有话题,因为没有问题。请移动讨论以聊天
7ochem

2
帖子的标题中有一个问题,在最后一段中我也更具体。无论如何,在我看来,此类帖子对应用新发布的补丁程序时集中评论和最佳实践非常有用。
lloiacono,2015年

Answers:


33

通常,您可以像以前所有补丁一样应用补丁。看一下官方文档并查看此SE帖子。但是,是的,在应用此修补程序时,您应该检查一些其他事项。Byte / Hypernode有一个不错的帖子

  1. 检查您的主题是否具有自定义template/customer/form/register.phtml或自定义template/persistent/customer/form/register.phtml。如果是这种情况,请确保其中包含一个form_key
  2. 检查您的主题是否具有自定义主题layout/customer.xml。如果是这种情况,请确保对补丁进行必要的更改(customer_account_resetpassword已更改为customer_account_changeforgotten)。
  3. 您是否在CMS页,静态块或电子邮件模板中使用非标准变量?然后,确保将其列入白名单。请参阅此SE问题,以了解如何将变量/块列入白名单。
  4. cron.php通过HTTP 运行吗?确保您更好地使用cron.sh。如果无法做到这一点,至少确保您通过CLI PHP调用cron.php。如果由于某种原因您无法配置真正的cronjob并需要通过HTTP运行它,请参阅此SE问题
  5. 确保所有扩展名都使用“新”管理员路由。您可以使用此n98-magerun插件进行检查。您也可以使用此CLI脚本。您也可以看看这个相关的SE问题
    1. 当所有扩展都使用正确的管理员路由时,请确保在“系统”“配置”“管理员”“安全性”下禁用“启用管理员路由兼容模式”。
  6. 如果您使用M2ePro,则将其更新为最新版本,因为旧版本不适用于新补丁。

更新时,请确保删除文件dev/tests/functional/.htaccess。它在Magento 1.9.2.2中不再存在。保持它意味着您仍然脆弱。

无论如何,请在更新后使用MageReport检查您的页面,看看一切是否顺利。

Piotr还有一篇技术博客文章,描述了关键的更改。


请注意,CLI脚本提到“验证一切正常,然后禁用管理控制器兼容模式”。我认为它们相反,要实现它。那正确吗?
迈克尔

1
@kaska如果所有扩展都可以,则必须禁用兼容模式。
西蒙(Simon)

在生产环境中,您不应该完全删除/ dev吗?
paj 2015年

1
@paj理论上是。但是在1.9.2.2版本中,该文件受.htaccess保护,因此可以保留它。只需确保遵循我的.htaccess建议即可。
西蒙(Simon)

谢谢您的完整性,他们应该让您下次编写简明的发行说明!超级有帮助!
阿瑟拉德2015年


3

对于Nginx,请确保您阻止访问cron.php和dev文件夹。我们使用以下代码块:

location ~ ^/(app|includes|media/downloadable|pkginfo|report/config.xml|var|magmi|cron.php|dev)/? { deny all; }

您的正则表达式将无法正常运行,因为您只能对照目录进行检查。因此,“ report / config.xml,cron.php”不匹配,并且末尾有竖线或竖线符号。.复制粘贴?也不要将regex与/ app /一起使用,如果放错了地方,它将被黑客入侵。
MagenX

不好的复制和粘贴作业,对不起。加在?最后是斜杠,因此尾部的斜杠是可选的。刚刚测试过,它可以正常工作。
亚当·L.

此正则表达式也容易受到攻击,您具有^ /,请确保不要将源文件复制到顶级文件夹中,例如/ old /,/ upgrade /等
MagenX 2015年

@MagenX因此,您要说的是,如果不使用版本控制或标准系统管理BCP,则应归咎于此正则表达式?
梅尔文

1

我只是在1.10.1 EE上应用了补丁,这会在本机屏幕上引起副作用,因为该内核不兼容APPSEC-1063:

例:

app/code/core/Mage/Customer/Model/Entity/Attribute/Collection.php

您可以找到2个addFieldToFilter不符合APPSEC-1063的呼叫。

这破坏了客户>属性网格,因此您必须使用他们在APPSEC-1063部分的pdf“ SUPEE-6788-Technical%20Details%20.pdf” pdf中推荐的技巧来修补补丁。

改变几个

    $this->addFieldToFilter($field, 0);

(其中$ field包含复杂的(CASE .. WHEN THEN ...)sql语句)

进入

    $resultCondition = $this->_getConditionSql($field, 0);
    $this->_select->where($resultCondition);

rhoerr的supee-6788-toolbox和gaiterjones都没有检测到这种问题,我检查了所有其他问题-> addFieldToFilter($,似乎没有一个引起问题。

其他受影响的1.10核心文件:(由rhoerr的supee-6788-toolbox找到)

app/code/core/Mage/Bundle/Model/Mysql4/Option/Collection.php 

可能还有更多。

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.