重要提示:下载并安装Magento安全补丁。(没有SSH访问权限的FTP)


50

Magento安全补丁看起来像是.sh文件,如果不通过SSH访问其Magento安装,有人将如何应用这些补丁?

另外,这些补丁是否累积?IE:它们会被包含在Magento的未来版本中还是需要重新应用?

我问这个问题是因为我登录到管理控制台并收到严重安全警告:

从Magento社区版下载页面(https://www.magentocommerce.com/products/downloads/magento/)下载并实现2个重要的安全补丁(SUPEE-5344SUPEE-1533)。

如果尚未执行此操作,请下载并安装2个以前发布的补丁,以防止攻击者在Magento软件上远程执行代码。这些问题影响所有版本的Magento社区版。

未来几天,Check Point软件技术公司的新闻稿将使这些问题之一广为人知,这可能会警告可能试图利用它的黑客。在发布此问题之前,请确保已安装修补程序以作为预防措施。

截至2015年5月14日

从Magento社区版下载页面(https://www.magentocommerce.com/products/downloads/magento/)下载并安装新的安全补丁(SUPEE-5994)对您来说很重要。请立即应用此重要更新,以帮助保护您的站点免受暴露于影响所有Magento Community Edition软件版本的多个安全漏洞的侵害。请注意,除了最近的Shoplift补丁(SUPEE-5344)之外,还应该安装此补丁。

我还收到以下电子邮件:

尊敬的Magento商人:

为了进一步保护Magento平台免受潜在攻击,我们今天发布了一个具有多个关键安全修复程序的新补丁(SUPEE-5994)。该补丁解决了一系列问题,其中包括攻击者可以访问客户信息的情况。这些漏洞是通过我们的多点安全计划收集的,我们没有收到任何商家或客户受到这些问题影响的报告。

Magento Community Edition软件的所有版本都会受到影响,我们强烈建议您与解决方案合作伙伴或开发人员合作,立即部署此关键补丁。请注意,除了最近的Shoplift补丁(SUPEE-5344)之外,还应该安装此补丁。Magento Community Edition用户指南的附录中提供了有关安全问题的更多信息。

您可以从Community Edition下载页面下载补丁。寻找SUPEE-5994补丁。该补丁可用于Community Edition 1.4.1–1.9.1.1。

在将修补程序部署到生产站点之前,请务必先在开发环境中实施和测试该修补程序,以确认它可以按预期工作。在线提供有关在Magento社区版上安装补丁的信息。

感谢您对这个问题的关注。

2015年7月7日更新

2015年7月7日:新的Magento安全补丁(SUPEE-6285)–立即安装
今天,我们提供了一个新的安全补丁(SUPEE-6285),用于解决关键的安全漏洞。该补丁适用于Community Edition 1.4.1到1.9.1.1,并且是我们最新版本Community Edition 1.9.2的核心代码的一部分,今天可以下载。请注意:必须首先实现SUPEE-5994以确保SUPEE-6285正常工作。从社区版下载页面下载社区版1.9.2或补丁:https : //www.magentocommerce.com/products/downloads/magento/

2015年8月4日更新

2015年8月4日:新的Magento安全补丁(SUPEE-6482)–立即安装
今天,我们提供了一个新的安全补丁(SUPEE-6482),该补丁解决了4个安全问题。与API相关的两个问题和两个跨站点脚本编写风险。该修补程序可用于Community Edition 1.4和更高版本,并且是Community Edition 1.9.2.1核心代码的一部分,该代码可立即下载。在实施此新的安全修补程序之前,必须首先实施所有以前的安全修补程序。从https://www.magentocommerce.com/products/downloads/magento/下载的Community Edition下载页面下载Community Edition 1.9.2.1或补丁。

2015年10月27日更新

2015年10月27日:全新的Magento安全补丁(SUPEE-6788)–立即安装
今天,我们将发布一个新补丁(SUPEE-6788)和Community Edition 1.9.2.2/Enterprise Edition 1.14.2.2,以解决10多个安全问题,包括远程执行代码和信息泄漏漏洞。该补丁与Guruincsite恶意软件问题无关。请确保首先在开发环境中测试补丁,因为它可能会影响扩展和自定义。从社区版下载页面/企业版支持门户网站下载补丁程序,并在http://magento.com/security/patches/supee-6788上了解更多信息。

2016年1月20日更新

重要说明:新的安全补丁(SUPEE-7405)和版本– 2016年1月20日
今天,我们将发布新的补丁(SUPEE-7405)和社区版1.9.2.3 /企业版1.14.2.3,以提高Magento网站的安全性。没有与安全性问题相关的已确认攻击,但是某些漏洞可能被利用来访问客户信息或接管管理员会话。您可以从Community Edition下载页面/ MyAccount下载补丁程序并发布,并在https://magento.com/security/patches/supee-7405了解更多信息。

更新2016年2月23日

现在提供SUPEE7405补丁的更新版本。这些更新增加了对PHP 5.3的支持,并解决了原始版本中遇到的上传文件权限,合并购物车和SOAP API问题。他们不解决任何新的安全问题。您可以从Community Edition下载页面/ MyAccount下载补丁程序并发布,并在https://magento.com/security/patches/supee-7405了解更多信息。


4
同样有趣的是,他们使用shell脚本来应用补丁,但是不提供用于curl或的URL- wget您必须在下载页面上登录,下载文件,将文件通过FTP传输到站点然后再应用,这有点愚蠢。
pspahn

5
另请参阅: byte.nl/wiki/How_to_apply_Magento_patch_SUPEE-5344和检查,如果一切都固定在这里了:shoplift.byte.nl
吉荣

6
值得一提的是,所有补丁仅在该行下方包含一个标准git补丁__PATCHFILE_FOLLOWS__。这意味着您可以将该内容复制到文件之外,然后将其添加到.patch扩展名为新文件中。然后只需使用git apply即可。
Jonathan Hussey

嗨,Magento中可能会安装多个补丁文件..?
VijayS91

Answers:


35

在没有SSH访问权限的情况下手动应用补丁

你在这里有一个好点。补丁以.sh文件形式提供,Magento没有针对仅FTP网站提供解决方案。

我建议人们将其网站的代码通过FTP复制到本地环境中(您可能已经拥有了)。然后通过运行.sh文件来应用补丁。

现在,您需要找出需要再次上传的文件。如果您打开.sh补丁文件,那么您将看到它包含两个部分:

  1. Bash Shell代码以应用补丁。该代码对于每个补丁都是通用的。
  2. 实际补丁采用统一补丁格式的形式。这仅指示文件中已更改的行(包括某些上下文行)。从线下开始__PATCHFILE_FOLLOWS__

从第二部分中,您可以阅读受补丁影响的文件。您需要再次将这些文件上传到FTP或...,您可以仅上传所有内容。

无需bash / shell即可手动应用

  1. 如果您无法运行.sh文件(在Windows中),则可以提取补丁的第二部分(统一补丁),然后使用补丁工具(或通过PHPStorm)手动应用它。
  2. Magentary.com网站为每个Magento版本提供ZIP文件,每个版本仅包含补丁文件。

在当前和将来的版本中打补丁?

现在发布的修补程序适用于已经发布的所有版本。当然,Magento可能会发布新版本(主要版本或次要版本)。然后,它们将包含所有安全补丁,因为Magento还将自然地将补丁应用于其开发代码库(这些补丁甚至源自该代码库;)。

更新
每个最新的补丁Magento还发布了已经包含特定最新补丁的Magento CE和EE的新版本。请参阅Magento下载页面上的Release Archive选项卡。

检查由JH维护的此工作表,以针对哪个Magento CE和EE版本安装哪些补丁程序:https : //docs.google.com/spreadsheets/d/1MTbU9Bq130zrrsJwLIB9d8qnGfYZnkm4jBlfNaBF19M


嗨,Magento中可能会安装多个补丁文件..?
VijayS91

谢谢@ 7ochem,它为我+1帮了我的忙……
Magento的宝贝,2015年


6
作曲家不应该在生产服务器上。首先,您运行composer,获取更新的文件,然后上传更改的文件。2级是与詹金斯一起做到的。
Aleksey Razbakov '16

2
没错...构建与部署...但是,当您使用FTP时,您可能并没有参与其中。在这个答案中也将广泛解释。如何进行设置以及如何仅上传已更改/添加/删除的文件(不同版本和内容)。
7ochem '16

24

不幸的是,没有没有外壳访问权限的安装这些补丁的“简便”方法,但是有两种方法可以做到。

通过PHP安装补丁

  1. 使用FTP客户端将特定的修补程序上传到Magento文件夹的根目录。
  2. 创建一个名为applypatch.php的PHP文件,它将为您运行补丁,并将其上传到Magento文件夹的根目录。如果您不使用1.8.x-1.9.x版本的补丁,请确保在此处使用正确的补丁名称。

<?php
print("<PRE>");
passthru("/bin/bash PATCH_SUPEE-5344_CE_1.8.0.0_v1.sh");
print("</PRE>");
?>

  1. 访问位于http://your.domain.com/applypatch.php的文件,并检查输出是否符合预期。

手动安装补丁

.sh文件包含“ DIFF”补丁。这些显示删除和添加了哪些行。尽管我不建议这样做,但您应该能够通过FTP手动下载文件,并在所选的编辑器中编辑这些文件,然后再次通过FTP重新上传它们。格式不太难解释,因此您可以对所有文件执行此操作,并且不要花几分钟的时间。


3
如果仅通过将必要的文件编辑为新版本来“应用”补丁,将来是否会尝试正确打补丁,以通知用户该补丁已被补丁?
pspahn 2015年

4
看来至少对于SUPEE-5344和SUPEE-1533,有一种日志写入app / etc / applied.patches.list。提供有关修补程序实际作用的一般信息。我在Magento的代码库中做了一个grep来引用此文件,但是它没有返回任何内容,这可能意味着eans可能没有跟踪所应用补丁的逻辑。旁注
sparecycle

4
此方法要求Web服务器具有对文件的写访问权。如果使用此方法,请务必确保将权限更改回原来的状态,以便Web服务器无法写入/ media和/ var之外的文件
Kevin Schroeder 2015年

它说:“错误:“ / app / etc /”必须存在才能正常工作。” ,请大家帮忙
塔希尔·亚辛·

3

就我而言,我使用bitbucket进行版本维护,并仅通过bitBucket进行更改。

因此,当我应用补丁时,我要做的就是在本地系统中应用该补丁并测试所有内容。我的网站正在运行。

并将所有内容推送到bitbucket,并在现场进行所有更改并应用我的补丁。

如果您没有ssh访问权限,该怎么办

1)在本地应用补丁并将更改推送到bitbucket。Bitbucket告诉您上次提交更改了哪些文件。

2)通过FTP手动上传这些文件,然后应用您的补丁。


2

通过FTP / sFTP或FileManager / File Upload应用Magento补丁。

方法1:-

要以这种方式应用补丁程序,我们只需替换已更改的文件。如果您或您的开发人员更改了任何核心的Magento文件(顺便说一下,这是一个很大的禁忌),就不能盲目使用这种方法。此类更改应重新应用于修补的文件,否则您将丢失这些更改。

请访问以下URL下载以下补丁:

https://magentary.com/kb/install-supee-9652-without-ssh/

https://magentary.com/kb/install-supee-8788-without-ssh/

https://magentary.com/kb/install-supee-7405-without-ssh/

https://magentary.com/kb/install-supee-6788-without-ssh/

http://magentary.com/kb/install-supee-6482-without-ssh/

http://magentary.com/kb/install-supee-6285-without-ssh/

https://magentary.com/kb/install-supee-5994-without-ssh/

https://magentary.com/kb/apply-supee-5344-and-supee-1533-without-ssh/

方法2:-

将补丁文件下载到https://magento.com/tech-resources/download#download1972 在magento的根目录中上传补丁文件。

制作一个名为patch.php的文件,并在其中写入以下代码,

<?php
print("<PRE>");
passthru("/bin/bash PATCH_SUPEE-9652.sh");
print("</PRE>");
echo "Done";
?>

您从浏览器运行patch.php。

如果您遇到这样的错误,

“错误!未安装此sh脚本中使用的某些必需的系统工具;缺少工具”修补程序”,请安装它们。

这意味着您的服务器中未安装系统工具来运行sh脚本。


-2

我认为没有SSH访问权限就不可能做到这一点,但是您始终可以在面板或任何其他面板上创建一个SSH帐户,并且您很有可能会找到通过托管来创建SSH帐户的教程公司只需在Google上搜索“您的托管公司的名称+ ssh创建”。


-3

下载补丁程序(实际上只有1个,因为EE是1,其他是CE),建议您先快速运行。

cp -r public_html备份(用​​完整的magento安装替换public_html)

首先将修补程序通过FTP传输到备份目录,然后通过在备份上运行该修补程序来检查一切正常。sh patchname.sh

一切都好?通过FTP将修补程序传输到实际安装并运行

http://devdocs.magento.com/guides/m1x/other/ht_install-patches.html

该指南还建议“对补丁程序更改的文件重新拥有所有权:查找Web服务器用户:ps -o“用户组命令” -C httpd,apache2 USER列中的值是Web服务器用户名。通常, CentOS上的Apache Web服务器用户为apache,而Ubuntu上的Apache Web服务器用户为www-data。作为具有root特权的用户,请从Magento安装目录中输入以下命令:chown -R web-server-user-name。例如,在Apache通常以www-data运行的Ubuntu上,输入chown -R www-data“

以root身份运行ps命令,我仅以root身份作为用户,然后运行chown -R root并调试了我的安装,然后使用安装了该用户帐户的用户名再次运行了它,一切都很好


我也用这个php脚本代替了清理文件权限。magenmarket.com/news
舒适的

3
我建议您通过SSH运行一系列命令。OP的问题是“如何在没有SSH的情况下执行此操作?” ...
7ochem 2015年

哦!请再说一遍!我的错误
舒适的
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.